我想补充一些没有。获得未来日期的天数。周末不应该包括在其中。我怎样才能得到这个?
var startdate = "2012 年 6 月 8 日"; 不。要添加的天数 = 10;结束日期应为“2012 年 6 月 22 日”
我想补充一些没有。获得未来日期的天数。周末不应该包括在其中。我怎样才能得到这个?
var startdate = "2012 年 6 月 8 日"; 不。要添加的天数 = 10;结束日期应为“2012 年 6 月 22 日”
试试这个 :
var startDate = "8-June-2012";
startDate = new Date(startDate.replace(/-/g, "/"));
var endDate = "", noOfDaysToAdd = 10, count = 0;
while(count < noOfDaysToAdd){
endDate = new Date(startDate.setDate(startDate.getDate() + 1));
if(endDate.getDay() != 0 && endDate.getDay() != 6){
//Date.getDay() gives weekday starting from 0(Sunday) to 6(Saturday)
count++;
}
}
这是演示
function calculateWorkingDayNumbers(startDate, offset)
{
var startDay = startDate.getDay();
if ((startDay % 7) === 1)
{
return ((offset - (offset % 7)) / 7) + ((offset % 7 === 1) ? (1) : (0));
}
else if (offset < 7)
{
if ((startDay === 6))
return 1 + ((offset > 0) ? (1) : (0));
else if (startDay === 0)
return 1 + ((offset === 6) ? (1) : (0));
}
else
{
return calculateWorkingDayNumbers(startDate, (((startDay % 7) + 1) % 7)) + calculateWorkingDayNumbers(startDate.setDate(startDate.getDate() + (((startDay % 7) + 1) % 7)), offset - (((startDay % 7) + 1) % 7));
}
}
这个(未经测试的)代码非常快。您也可以通过处理假期来改进您的解决方案。