当该月的最后一天是周末时,我们如何获取该月最后一个星期五的日期,例如 2020 年 5 月,该月的最后一个星期五是 29。
Example input : may 2020
output : may 29 2020 , since the last day of may which is 31 falls on weekend
Example input : june 2020
output : june 30, 2020 , since the last day of june does not fall on weekend
最佳答案
从该月的最后一天开始计算天数。如果 friday(dayno =5) 不在 5 范围内,则减 5,否则加 2 。最后,如果天数为 0 或 6,则从该月的最后一天减去天数,否则返回该月的最后一天。
var calc = function(monthYear) {
var lastDay = moment(monthYear, "MM-YYYY").endOf("month");
var lastDayNumber = lastDay.day();
var daystoSubtract;
daystoSubtract =
lastDay.day() >= 5 ?
(daystoSubtract = lastDayNumber - 5) :
(daystoSubtract = lastDayNumber + 2);
if (lastDay.day() === 0 || lastDay.day() === 6) {
return lastDay.subtract(daystoSubtract, "days");
} else {
return lastDay;
}
};
console.log(calc("05-2020").format("DD-MM-YYYY"));
console.log(calc("06-2020").format("DD-MM-YYYY"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
关于javascript - 当该月的最后一天是周末时,如何获取该月最后一个星期五的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61055293/