// 获取起始日期获取周以及对应日期段


    formatDig (num) {
      return num > 9 ? '' + num : '0' + num
    },
    formatDate (mill) {
      var y = new Date(mill)
      let raws = [
        y.getFullYear(),
        this.formatDig(y.getMonth() + 1),
        this.formatDig(y.getDate()),
        y.getDay() || 7
      ];
      let format = ['年', '月', '日 星期']
      return String.raw({ raw: raws }, ...format)
    },
    *createWeeks (startday, endday) {
      const ONE_DAY = 24 * 3600 * 1000
      let start = startday,
        end = endday
      let firstDay = start.getDay() || 7,
        lastDay = end.getDay() || 7
      let startTime =+ start,
        endTime = startTime + (7 - firstDay) * ONE_DAY,
        _endTime = end - (7 - lastDay) * ONE_DAY
      yield [startTime, endTime]
      startTime = endTime + ONE_DAY
      endTime = endTime + 7 * ONE_DAY
      while (endTime < _endTime) {
        yield [startTime, endTime]
        startTime = endTime + ONE_DAY
        endTime = endTime + 7 * ONE_DAY
      }
      yield [startTime, +end]
    },
    getyearweekdate () {
      let index = 1
      for (let i of this.createWeeks(new Date(2018, 0, 1), new Date(2019, 0, 1))) {
        let start = i[0],
          end = i[1]
        console.log(`第${this.formatDig(index++)}周 ${this.formatDate(start)}-${this.formatDate(end)}`)
      }
    },

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中可以使用Calendar类来获取某年有多少个以及对应的起止时间。具体实现如下: ```java import java.text.SimpleDateFormat; import java.util.Calendar; public class WeekOfYear { public static void main(String[] args) { int year = 2021; // 指定年份 Calendar calendar = Calendar.getInstance(); calendar.setFirstDayOfWeek(Calendar.MONDAY); // 设置每起始日为星期一 calendar.set(Calendar.YEAR, year); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); int weeks = calendar.getActualMaximum(Calendar.WEEK_OF_YEAR); // 获取该年份的总数 System.out.println(year + "年共有" + weeks + ""); for (int i = 1; i <= weeks; i++) { calendar.set(Calendar.WEEK_OF_YEAR, i); calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); String start = sdf.format(calendar.getTime()); // 获取当前起始日期 calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); String end = sdf.format(calendar.getTime()); // 获取当前的结束日期 System.out.println("第" + i + ":" + start + " ~ " + end); } } } ``` 运行结果如下: ``` 2021年共有52 第1:2021-01-04 ~ 2021-01-10 第2:2021-01-11 ~ 2021-01-17 ... 第51:2021-12-20 ~ 2021-12-26 第52:2021-12-27 ~ 2021-12-31 ``` 在上面的代码中,我们首先指定了一个年份,然后获取该年份的总数。接着,我们使用循环遍历每一,并计算每一起始日期和结束日期。最后,输出每一的起止时间。需要注意的是,我们在这里将每起始日设置为星期一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值