JS中如何统计两个日期之间的天数,如果其中包含星期六,星期日的话,要将其去除
如题。JS中如何统计两个日期之间的天数,如果其中包含星期六,星期日的话,要将其去除 。
请假系统中,周六周日是不能计算进去的。
网上的如下方法是错误的。
function cal(){
var d1 = $("date1").value.split("-");
var d2 = $("date2").value.split("-");
var date1 = new Date(d1[0], d1[1]-1, d1[2]);
var date2 = new Date(d2[0], d2[1]-1, d2[2]);
var day = (date2.getTime() - date1.getTime()) / (1000 * 60 * 60 * 24);
var w1 = date1.getDay();
var w2 = date2.getDay();
var w = parseInt(day / 7) * 2;
w += w1 > w2 ? 2 : w1 == 0 ? 1 : 0;
$("result").value = day - w + 1;
}
[解决办法]
我的方法有点笨啊:
computeWorkingDays = function(startDate, endDate){
var base = 1000 * 60 * 60 * 24;
var workingDays = 0;
while (endDate.getTime() - startDate.getTime() > 0){
if(startDate.getDay() != 6 && startDate.getDay() != 0) {
workingDays ++;
}
startDate = new Date(startDate.getTime() + base);
}
return workingDays;
}