JS——判断节假日(假日包括周末,不包括调休上班的周末)

思路:创建两个数组,数组1为节假日数组,数组2为是周末上班日期数组。如果当前日期(或某日期)同时满足2个条件(1.在节假日数组内或在周末。2.不在周末上班日期数组)即为节假日,否则即为非假日。

注意:两个数组日期为2024-4-4(而不是2024-04-04),因为curdate.getMonth()和curdate.getDate()返回的是4,而不是04。

//节假日数组
var holidays = [
  '2024-4-4', //清明
  '2024-4-5', //清明
  '2024-4-6', //清明
  '2024-5-1', // 劳动节
  '2024-5-2', // 劳动节
  '2024-5-3', // 劳动节
  '2024-5-4', // 劳动节
  '2024-5-5', // 劳动节
  '2024-6-8', // 端午节
  '2024-6-9', // 端午节
  '2024-6-10', // 端午节
  '2024-9-15', // 中秋节
  '2024-9-16', // 中秋节
  '2024-9-17', // 中秋节
  '2024-10-1', // 国庆节
  '2024-10-2', // 国庆节
  '2024-10-3', // 国庆节
  '2024-10-4', // 国庆节
  '2024-10-5', // 国庆节
  '2024-10-6', // 国庆节
  '2024-10-7', // 国庆节
  '2023-12-31'  // 元旦
];
//周末上班日期数组
var nWeekend = [
 '2024-4-7', //清明调整
 '2024-4-28', //五一调整
 '2024-5-11', //五一调整
 '2024-9-14', //中秋调整
 '2024-9-29', //国庆调整
 '2024-10-12', //国庆调整
];

var curdate = new Date();
curdate.setTime(curdate.getTime() + 4 * 24 * 60 * 60 * 1000); // 1即明天,2即后天
var year = curdate.getFullYear();
var month = curdate.getMonth()+1 ;//getMonth()+1为当前月份
var date = curdate.getDate();
var formattedDate = year + "-" + month + "-" + date;

//该日期同时满足2个条件即为节假日:1.在节假日数组内或在周末. 2.不在周末上班日期数组
if((holidays.indexOf(formattedDate)>=0 || (curdate.getDay()==0 || curdate.getDay()==6)) && nWeekend.indexOf(formattedDate)<0){
    console.log(formattedDate+':'+'节假日');
}else{
    console.log(formattedDate+':'+'非节假日');
}

 如下,当前日期2024-4-3:非节假日。

 如下,当前日期加1为2024-4-4:节假日(清明节)。

 如下,当前日期加4为2024-4-7:非节假日(虽是周日,但属于清明节调整的上班日)。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科技颠覆未来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值