在JavaScript中,可以使用以下方法将日期数组分组到周期startdate-enddate,并在日期之间缺少一个工作日时开始新的周期:
function isWorkingDay(date) {
const day = date.getDay();
return day !== 0 && day !== 6; // 非星期日和星期六为工作日
}
function groupDatesByPeriod(dates) {
const groups = [];
let currentGroup = [dates[0]];
for (let i = 1; i < dates.length; i++) {
const currentDate = dates[i];
const previousDate = dates[i - 1];
if (isWorkingDay(currentDate) && isWorkingDay(previousDate)) {
currentGroup.push(currentDate);
} else {
groups.push(currentGroup);
currentGroup = [currentDate];
}
}
groups.push(currentGroup);
return groups;
}
const dates = [new Date('2022-01-01'), new Date('2022-01-02'), new Date('2022-01-03'), new Date('2022-01-04'), new Date('2022-01-05'), new Date('2022-01-06'), new Date('2022-01-07'), new Date('2022-01-08')];
const groupedDates = groupDatesByPeriod(dates);
console.log(groupedDates);
输出结果将是一个包含分组的数组,每个分组表示一个周期startdate-enddate。如果日期之间缺少一个工作日,则会开始一个新的周期。
请注意,以上代码示例仅为演示如何实现该功能,并不涉及任何特定的云计算品牌商。如需了解腾讯云相关产品和产品介绍,建议访问腾讯云官方网站或咨询腾讯云的客服人员。
领取专属 10元无门槛券
手把手带您无忧上云