我需要做3个连续工作日对证在javascript日期数组。我把它与任何3个天工作,但我无法弄清楚了我的生活,我怎么能做出与周末打破了连续两天这项工作。连续工作日(没有周末)
注意 - 这需要时刻()库(https://momentjs.com)
我的代码,对于3实际连续几天的工作原理:
var allDates = ["2017-03-07", "2017-03-09", "2017-03-10", "2017-03-13", "2017-03-15"];
var diff = 86400000;
var consecutive = 0;
allDates.sort(function(a,b){
return new Date(a) - new Date(b);
});
for (i = 2; i < allDates.length; i++) {
var d = moment(allDates[i], "YYYY-MM-DD").format('x');
var d1 = moment(allDates[i-1], "YYYY-MM-DD").format('x');
var d2 = moment(allDates[i-2], "YYYY-MM-DD").format('x');
if (d1 - d2 == diff && d - d2 == diff * 2) {
consecutive = 1;
break;
}
}
正如你可以看到上面的日历,我希望3月9日,10日和13日连续3个工作日。任何人有任何反馈可以引导我走上正确的道路?
在此先感谢
只是为了澄清 - 你的阵列有5个日期。如果*阵列中的任何*三个日期都是连续工作日,您是否想要返回true? – Jamiec
是连续3个工作日。 – rubberchicken
公共假期怎么样? – Jamiec