12345678910111213141516171819202122232425262728293031323334353637383940 |
- //项目所需以每周五为周第一天 周四结束 可在createYear 方法中修改
- let dayTime = 1000 * 60 * 60 * 24;
- export const createYear = (year) => {
- let arr = [];
- let yearStart = new Date(`${year}-01-01`);
- let yearEnd = new Date(`${year}-12-31`);
- let startTime;
- if (yearStart.getDay() < 5) {
- startTime = yearStart.getTime() + (5 - yearStart.getDay()) * dayTime;
- } else if (yearStart.getDay() > 5) {
- startTime = yearStart.getTime() + 6 * dayTime;
- } else {
- startTime = yearStart.getTime();
- }
- let endTime = yearEnd.getDay() < 4 ? yearEnd.getTime() + (4 - yearEnd.getDay()) * dayTime : yearEnd
- .getTime();
- formatWeek(startTime, endTime, arr, 0);
- return arr
- }
- function formatWeek(start, end, weeks, index) {
- let currentTimes = new Date().getTime();
- weeks.push({
- week: index + 1,
- value: `${formatDate(start)}至${formatDate(start + 6 * dayTime)}`,
- weekValue: `第${index+1}周`,
- start: formatDate(start),
- end: formatDate(start + 6 * dayTime)
- })
- if (start + 6 * dayTime < currentTimes && start + 6 * dayTime < end) {
- formatWeek(start + 7 * dayTime, end, weeks, index + 1)
- }
- }
- function formatDate(timer) {
- let times = new Date(timer);
- let [y, m, d] = [times.getFullYear(), times.getMonth() + 1, times.getDate()];
- return `${y}-${m<10?'0'+m:m}-${d<10?'0'+d:d}`
- }
|