在项目开发中遇到的奇葩需求记录,需求为可以按月份查询数据也可以按当前选中月份的周查询数据。以下就是实现计算每月有几周的逻辑
let year = 2020;
let month = 8;
let weekList = [];
function getMonthWeek(y, m, d) {
let date = new Date(y, m - 1, d);
let funD = date.getDate();
let weekendCount = 0;
for (let i = 0; i < funD; i++) {
date.setDate(i + 1);
if (date.getDay() === 0) {
weekendCount++
}
if(i === (funD-1) && date.getDay() !== 0){
weekendCount += 1
}
}
return weekendCount;
}
let last = new Date(year, month, 0);
let y = last.getFullYear();
let m = last.getMonth() + 1;
let d = last.getDate();
let num = parseInt(getMonthWeek(y, m, d));
for (let i = 0; i < num; i++) {
weekList.push(`第${i + 1}周`)
}
console.log(weekList)