Javascript 从日期范围计算工作日
给定一系列日期,需要计算天数,不包括给定的节假日和每周的特定天数(每周休息日) 假日将是一个日期数组,但周休假日将只是一个数字,Javascript 从日期范围计算工作日,javascript,date,momentjs,Javascript,Date,Momentjs,给定一系列日期,需要计算天数,不包括给定的节假日和每周的特定天数(每周休息日) 假日将是一个日期数组,但周休假日将只是一个数字,[0,1,2,3,4,5,6],表示一周中的几天 以下是我迄今为止所做的尝试: export const calculateWorkingDays = (startDate, endDate, weeklyOffDays, holidays) => { // Get difference between start and end dates //
[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');
}
我还不知道如何从数字表示中获取
每周休息日
日期,以及如何减去给定的天数(每周休息日和假期)从日期范围,然后获取剩余天数计数。您可以从开始日期
循环到结束日期
,并检查每一项的日期是否包含在每周工作日
中,或者日期是否包含在假日
数组中
这里是一个实时示例,假设weeklyOffDays
为整数数组,而holidays
为ISO 8601字符串数组
const calculateworkdays=(开始日期、结束日期、每周工作日、假日)=>{
让计数=0;
常数开始=力矩(开始日期);
常数结束=力矩(结束日期);
while(start.isBefore(end)){
如果(!weeklyOffDays.includes(start.day())&&!holidays.includes(start.format('YYYY-MM-DD')){
计数++;
}
开始。添加(1,'天');
}
返回计数;
}
const res=计算工作日('2018-07-01','2018-07-15',[5,6','2018-07-04']);
控制台日志(res)代码>
假日将是一组日期
那么假日的每一天都将在那里?像[May1,May2,May3]
?@JonasW.,yes for holidays是一个数组,包含与您指定的日期类似的日期