判断 JavaScript 日期是工作日还是周末

我经常发现自己需要检查给定的日期是工作日还是周末。由于我不太喜欢为这样简单的任务使用库,我想出了几个简单的辅助函数来完成这个任务。

const isWeekday = date => date.getDay() % 6 !== 0;
const isWeekend = date => date.getDay() % 6 === 0;

isWeekday(new Date('2024-01-05')); // true
isWeekend(new Date('2024-01-05')); // false

isWeekday(new Date('2024-01-06')); // false
isWeekend(new Date('2024-01-06')); // true

这些代码片段的整个前提非常简单。我们使用 Date.prototype.getDay() 来获取星期几,它是一个介于 06 之间的数字,其中 0 表示星期日,6 表示星期六。然后我们使用取模运算符(%)来检查日期是否是 6 的倍数,这对于星期六和星期日都成立。如果余数是 0,我们就知道这个日期是周末。如果余数不是 0,我们就知道这个日期是工作日。