📜  如何在js中计算每月的第一个星期一 - Javascript(1)

📅  最后修改于: 2023-12-03 14:52:46.718000             🧑  作者: Mango

如何在JS中计算每月的第一个星期一

在JS中,我们可以使用Date对象来计算每月的第一个星期一。

function getFirstMonday(year, month) {
  const firstDay = new Date(year, month, 1).getDay();
  if (firstDay === 1) {
    return 1;
  } else if (firstDay === 0) {
    return 2;
  } else {
    return 9 - firstDay;
  }
}

const year = 2022; // 要计算的年份
const month = 1; // 要计算的月份,从0开始,0-11分别代表1-12月

const firstMonday = getFirstMonday(year, month); // 计算每月的第一个星期一

console.log(`${year}年${month + 1}月的第一个星期一是${firstMonday}日`);

以上代码可以输出结果:

2022年2月的第一个星期一是7日

代码解释

我们先定义了一个getFirstMonday函数,它接受两个参数yearmonth,返回该月的第一个星期一是几号。函数内部的逻辑如下:

  1. 使用new Date(year, month, 1)来创建一个表示该月1号的日期对象。
  2. 对这个日期对象调用getDay()方法,返回值为0-6,分别代表星期天到星期六。
  3. 如果是星期一,直接返回1。
  4. 如果是星期天,返回2(因为第一个星期一是2号)。
  5. 否则返回9 - firstDay,即下一个星期一距离1号的天数。

例如,如果该月1号为星期二,那么第一个星期一就是距离1号7天,即2月份的第一个星期一是7号。

接下来,我们定义了要计算的年份和月份,以及调用getFirstMonday函数得到结果,并输出。需要注意的是,输出年份和月份时,要加1,因为JS中月份是从0开始的。

总结

通过使用Date对象,我们可以很方便地计算每个月的第一个星期一。如果需要计算其他星期几,只需要稍作修改即可。