以年份获取当前年份的周数

本文介绍了一个JavaScript函数,用于计算给定年份内的所有完整周数,包括周的起止日期,同时处理了最后一周不足7天的情况。
摘要由CSDN通过智能技术生成

仅做记录 代码写的一般 如有错误或更好的写法 请指出 谢谢

需求:选择年份,获取当前年份的所有周数,如果最后一周不满七天 只返回当前年的日期

期望数据格式 :

[ 
  {start:'01-01',end:'01-07'},
  {start:'01-08',end:'01-14'},
  {start:'01-15',end:'01-21'}......
]

代码实现

 calculateWeekNumber(year) {
      if (!year) {
        return "请输入年份";
      }
      const startDate = new Date(year, 0, 1); // 获取该年1月1日
      const endDate = new Date(year, 11, 31); // 获取该年12月31日
      let weekData = [];
      while (startDate <= endDate) {
        const start = new Date(
          startDate.getFullYear(),
          startDate.getMonth(),
          startDate.getDate()
        )
          .toISOString()
          .slice(0, 10); // 获取该日的开始日期
        const end = new Date(
          startDate.getFullYear(),
          startDate.getMonth(),
          startDate.getDate() + 6
        )
          .toISOString()
          .slice(0, 10); // 获取该日的结束日期
        weekData.push({ start, end }); // 添加到周数据数组中
        startDate.setDate(startDate.getDate() + 7); // 更新到下一个星期
      }
      //如果最后一周不满7天,只返回当前年的日期
      if (
        weekData[weekData.length - 1].end !== endDate.toISOString().slice(0, 10)
      ) {
        weekData[weekData.length - 1].end = endDate.toISOString().slice(0, 10);
      }
      weekData = weekData.map((item, index) => {
        return { ...item, week: index + 1 };
      });
      return weekData
    },

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值