您需要的函数是 getUTCDay()。
伪代码如下:
1 - 确定整周(天/7 截断)
2 - 计算工作日/周末:2 * 结果 = 周末,5 * 结果 = 工作日。
3 - 之后,剩余时间和一周的开始日期将决定额外的 1 天或 2 天
希望对您有所帮助,如果您需要 javascript,请告诉我,-约翰
已按要求编辑。注意:调整了您的原始版本以进行测试,您应该发现需要进行的更改以进行恢复。
function calcDay(dt1, dt2, range)
{
var msec1 = "October 13, 2014 11:13:00";
var date1 = new Date(msec1);
var msec2 = "October 13, 2013 11:13:00";
var date2 = new Date(msec2);
var days;
var wdays;
var startday;
var nLeft;
// neither should be zero
if(date1>0 && date2>0) {
days = Math.round( Math.abs((date2-date1)/86400000) );
wdays = Math.round(days / 7) * 5;
nLeft = days % 7;
startday = (date1 > date2) ? date2.getUTCDay() : date1.getUTCDay();
if (startday < 2) {
wdays += Math.max(nLeft+startday-1,0);
} else if (startday == 6) {
wdays += Math.max(nLeft-2,0);
} else if (nLeft > (7-startday)) {
wdays += (nLeft-2)
} else {
wdays += Math.min(nLeft, 6-startday)
}
}
};