2

我想补充一些没有。获得未来日期的天数。周末不应该包括在其中。我怎样才能得到这个?

var startdate = "2012 年 6 月 8 日"; 不。要添加的天数 = 10;结束日期应为“2012 年 6 月 22 日”

4

2 回答 2

2

试试这个 :

   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++;
        }
    }

这是演示

于 2012-06-21T07:46:08.803 回答
0
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));
    }
}

这个(未经测试的)代码非常快。您也可以通过处理假期来改进您的解决方案。

于 2012-06-21T09:06:46.657 回答