gpt4 book ai didi

javascript - 从日期范围计算工作日

转载 作者:行者123 更新时间:2023-12-03 01:33:50 28 4
gpt4 key购买 nike

给定一个日期范围,需要计算天数,不包括指定的假期和每周的某些天(每周休息日)。

假期将是array日期,但每周休息日只是一个数字,[0, 1, 2, 3, 4, 5, 6] ,代表一周中的几天。

以下是我迄今为止尝试过的:

export const calculateWorkingDays = (startDate, endDate, weeklyOffDays, holidays) => {
// Get difference between start and end dates
// Not used other parameters yet
return startDate.diff(endDate, 'days');
}

我还不知道如何获取weekly off days数字表示中的日期以及如何从日期范围中减去给定天数(每周休息日和节假日),然后获取剩余天数。

最佳答案

您可以从 startDateendDate 循环,并检查每个项目是否包含在 weeklyOffDays 中或该天中包含在 holidays 数组中。

这里是一个实时示例,假设 weeklyOffDays 为整数数组,holidays 为 ISO 8601 字符串数组。

const calculateWorkingDays = (startDate, endDate, weeklyOffDays, holidays) => {
let count = 0;
const start = moment(startDate);
const end = moment(endDate);
while( start.isBefore(end) ){
if( !weeklyOffDays.includes(start.day()) && !holidays.includes(start.format('YYYY-MM-DD'))){
count++;
}
start.add(1, 'day');
}
return count;
}

const res = calculateWorkingDays('2018-07-01', '2018-07-15', [5, 6], ['2018-07-04']);
console.log(res);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

关于javascript - 从日期范围计算工作日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51168785/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com