js获取一年有多少周及每周详细日期

获取一年的周数量及详细

function formatNumber(n) {
  return n.toString().length > 1 ? n : '0' + n
}

const getWeek = {
  run: (year) => {
    let days = getWeek.getDate(year || new Date().getFullYear())
    let weeks = {};
    for (let i = 0; i < days.length; i++) {
      let weeksKeyLen = Object.keys(weeks).length;
      let daySplit = days[i].split('_');

      if (weeks[weeksKeyLen] === undefined) {
        weeks[weeksKeyLen + 1] = [daySplit[0]]
      } else {
        if (daySplit[1] == '1') {
          weeks[weeksKeyLen + 1] = [daySplit[0]]
        } else {
          weeks[weeksKeyLen].push(daySplit[0])
        }

      }

    }
    return weeks;

  },
  getDate: (year) => {
    let dates = [];
    for (let i = 1; i <= 12; i++) {
      for (let j = 1; j <= new Date(year, i, 0).getDate(); j++) {
        dates.push(year + '-' + formatNumber(i) + '-' + formatNumber(j) + '_' + new Date([year, i, j].join('-')).getDay())
      }
    }
    return dates;
  }
}
const weeks = getWeek.run('2021');
console.log(weeks);

//console
{
  '1': [ '2021-01-01', '2021-01-02', '2021-01-03' ],
  '2': [
    '2021-01-04',
    '2021-01-05',
    '2021-01-06',
    '2021-01-07',
    '2021-01-08',
    '2021-01-09',
    '2021-01-10'
  ],
  '3': [
    '2021-01-11',
    '2021-01-12',
    '2021-01-13',
    '2021-01-14',
    '2021-01-15',
    '2021-01-16',
    '2021-01-17'
  ],
  '4': [
    '2021-01-18',
    '2021-01-19',
    '2021-01-20',
    '2021-01-21',
    '2021-01-22',
    '2021-01-23',
    '2021-01-24'
  ],
  '5': [
    '2021-01-25',
    '2021-01-26',
    '2021-01-27',
    '2021-01-28',
    '2021-01-29',
    '2021-01-30',
    '2021-01-31'
  ],
  '6': [
    '2021-02-01',
    '2021-02-02',
    '2021-02-03',
    '2021-02-04',
    '2021-02-05',
    '2021-02-06',
    '2021-02-07'
  ],
  '7': [
    '2021-02-08',
    '2021-02-09',
    '2021-02-10',
    '2021-02-11',
    '2021-02-12',
    '2021-02-13',
    '2021-02-14'
  ],
  '8': [
    '2021-02-15',
    '2021-02-16',
    '2021-02-17',
    '2021-02-18',
    '2021-02-19',
    '2021-02-20',
    '2021-02-21'
  ],
  '9': [
    '2021-02-22',
    '2021-02-23',
    '2021-02-24',
    '2021-02-25',
    '2021-02-26',
    '2021-02-27',
    '2021-02-28'
  ],
  '10': [
    '2021-03-01',
    '2021-03-02',
    '2021-03-03',
    '2021-03-04',
    '2021-03-05',
    '2021-03-06',
    '2021-03-07'
  ],
  '11': [
    '2021-03-08',
    '2021-03-09',
    '2021-03-10',
    '2021-03-11',
    '2021-03-12',
    '2021-03-13',
    '2021-03-14'
  ],
  '12': [
    '2021-03-15',
    '2021-03-16',
    '2021-03-17',
    '2021-03-18',
    '2021-03-19',
    '2021-03-20',
    '2021-03-21'
  ],
  '13': [
    '2021-03-22',
    '2021-03-23',
    '2021-03-24',
    '2021-03-25',
    '2021-03-26',
    '2021-03-27',
    '2021-03-28'
  ],
  '14': [
    '2021-03-29',
    '2021-03-30',
    '2021-03-31',
    '2021-04-01',
    '2021-04-02',
    '2021-04-03',
    '2021-04-04'
  ],
  '15': [
    '2021-04-05',
    '2021-04-06',
    '2021-04-07',
    '2021-04-08',
    '2021-04-09',
    '2021-04-10',
    '2021-04-11'
  ],
  '16': [
    '2021-04-12',
    '2021-04-13',
    '2021-04-14',
    '2021-04-15',
    '2021-04-16',
    '2021-04-17',
    '2021-04-18'
  ],
  '17': [
    '2021-04-19',
    '2021-04-20',
    '2021-04-21',
    '2021-04-22',
    '2021-04-23',
    '2021-04-24',
    '2021-04-25'
  ],
  '18': [
    '2021-04-26',
    '2021-04-27',
    '2021-04-28',
    '2021-04-29',
    '2021-04-30',
    '2021-05-01',
    '2021-05-02'
  ],
  '19': [
    '2021-05-03',
    '2021-05-04',
    '2021-05-05',
    '2021-05-06',
    '2021-05-07',
    '2021-05-08',
    '2021-05-09'
  ],
  '20': [
    '2021-05-10',
    '2021-05-11',
    '2021-05-12',
    '2021-05-13',
    '2021-05-14',
    '2021-05-15',
    '2021-05-16'
  ],
  '21': [
    '2021-05-17',
    '2021-05-18',
    '2021-05-19',
    '2021-05-20',
    '2021-05-21',
    '2021-05-22',
    '2021-05-23'
  ],
  '22': [
    '2021-05-24',
    '2021-05-25',
    '2021-05-26',
    '2021-05-27',
    '2021-05-28',
    '2021-05-29',
    '2021-05-30'
  ],
  '23': [
    '2021-05-31',
    '2021-06-01',
    '2021-06-02',
    '2021-06-03',
    '2021-06-04',
    '2021-06-05',
    '2021-06-06'
  ],
  '24': [
    '2021-06-07',
    '2021-06-08',
    '2021-06-09',
    '2021-06-10',
    '2021-06-11',
    '2021-06-12',
    '2021-06-13'
  ],
  '25': [
    '2021-06-14',
    '2021-06-15',
    '2021-06-16',
    '2021-06-17',
    '2021-06-18',
    '2021-06-19',
    '2021-06-20'
  ],
  '26': [
    '2021-06-21',
    '2021-06-22',
    '2021-06-23',
    '2021-06-24',
    '2021-06-25',
    '2021-06-26',
    '2021-06-27'
  ],
  '27': [
    '2021-06-28',
    '2021-06-29',
    '2021-06-30',
    '2021-07-01',
    '2021-07-02',
    '2021-07-03',
    '2021-07-04'
  ],
  '28': [
    '2021-07-05',
    '2021-07-06',
    '2021-07-07',
    '2021-07-08',
    '2021-07-09',
    '2021-07-10',
    '2021-07-11'
  ],
  '29': [
    '2021-07-12',
    '2021-07-13',
    '2021-07-14',
    '2021-07-15',
    '2021-07-16',
    '2021-07-17',
    '2021-07-18'
  ],
  '30': [
    '2021-07-19',
    '2021-07-20',
    '2021-07-21',
    '2021-07-22',
    '2021-07-23',
    '2021-07-24',
    '2021-07-25'
  ],
  '31': [
    '2021-07-26',
    '2021-07-27',
    '2021-07-28',
    '2021-07-29',
    '2021-07-30',
    '2021-07-31',
    '2021-08-01'
  ],
  '32': [
    '2021-08-02',
    '2021-08-03',
    '2021-08-04',
    '2021-08-05',
    '2021-08-06',
    '2021-08-07',
    '2021-08-08'
  ],
  '33': [
    '2021-08-09',
    '2021-08-10',
    '2021-08-11',
    '2021-08-12',
    '2021-08-13',
    '2021-08-14',
    '2021-08-15'
  ],
  '34': [
    '2021-08-16',
    '2021-08-17',
    '2021-08-18',
    '2021-08-19',
    '2021-08-20',
    '2021-08-21',
    '2021-08-22'
  ],
  '35': [
    '2021-08-23',
    '2021-08-24',
    '2021-08-25',
    '2021-08-26',
    '2021-08-27',
    '2021-08-28',
    '2021-08-29'
  ],
  '36': [
    '2021-08-30',
    '2021-08-31',
    '2021-09-01',
    '2021-09-02',
    '2021-09-03',
    '2021-09-04',
    '2021-09-05'
  ],
  '37': [
    '2021-09-06',
    '2021-09-07',
    '2021-09-08',
    '2021-09-09',
    '2021-09-10',
    '2021-09-11',
    '2021-09-12'
  ],
  '38': [
    '2021-09-13',
    '2021-09-14',
    '2021-09-15',
    '2021-09-16',
    '2021-09-17',
    '2021-09-18',
    '2021-09-19'
  ],
  '39': [
    '2021-09-20',
    '2021-09-21',
    '2021-09-22',
    '2021-09-23',
    '2021-09-24',
    '2021-09-25',
    '2021-09-26'
  ],
  '40': [
    '2021-09-27',
    '2021-09-28',
    '2021-09-29',
    '2021-09-30',
    '2021-10-01',
    '2021-10-02',
    '2021-10-03'
  ],
  '41': [
    '2021-10-04',
    '2021-10-05',
    '2021-10-06',
    '2021-10-07',
    '2021-10-08',
    '2021-10-09',
    '2021-10-10'
  ],
  '42': [
    '2021-10-11',
    '2021-10-12',
    '2021-10-13',
    '2021-10-14',
    '2021-10-15',
    '2021-10-16',
    '2021-10-17'
  ],
  '43': [
    '2021-10-18',
    '2021-10-19',
    '2021-10-20',
    '2021-10-21',
    '2021-10-22',
    '2021-10-23',
    '2021-10-24'
  ],
  '44': [
    '2021-10-25',
    '2021-10-26',
    '2021-10-27',
    '2021-10-28',
    '2021-10-29',
    '2021-10-30',
    '2021-10-31'
  ],
  '45': [
    '2021-11-01',
    '2021-11-02',
    '2021-11-03',
    '2021-11-04',
    '2021-11-05',
    '2021-11-06',
    '2021-11-07'
  ],
  '46': [
    '2021-11-08',
    '2021-11-09',
    '2021-11-10',
    '2021-11-11',
    '2021-11-12',
    '2021-11-13',
    '2021-11-14'
  ],
  '47': [
    '2021-11-15',
    '2021-11-16',
    '2021-11-17',
    '2021-11-18',
    '2021-11-19',
    '2021-11-20',
    '2021-11-21'
  ],
  '48': [
    '2021-11-22',
    '2021-11-23',
    '2021-11-24',
    '2021-11-25',
    '2021-11-26',
    '2021-11-27',
    '2021-11-28'
  ],
  '49': [
    '2021-11-29',
    '2021-11-30',
    '2021-12-01',
    '2021-12-02',
    '2021-12-03',
    '2021-12-04',
    '2021-12-05'
  ],
  '50': [
    '2021-12-06',
    '2021-12-07',
    '2021-12-08',
    '2021-12-09',
    '2021-12-10',
    '2021-12-11',
    '2021-12-12'
  ],
  '51': [
    '2021-12-13',
    '2021-12-14',
    '2021-12-15',
    '2021-12-16',
    '2021-12-17',
    '2021-12-18',
    '2021-12-19'
  ],
  '52': [
    '2021-12-20',
    '2021-12-21',
    '2021-12-22',
    '2021-12-23',
    '2021-12-24',
    '2021-12-25',
    '2021-12-26'
  ],
  '53': [
    '2021-12-27',
    '2021-12-28',
    '2021-12-29',
    '2021-12-30',
    '2021-12-31'
  ]
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值