获取一年的周数量及详细
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'
]
}