如何添加工作日到日期

How can I add week days to date?

本文关键字:工作日 日期 添加 何添加      更新时间:2023-09-26

下面的代码是否适用于所有可能的情况下添加工作日?例如,如果我在"星期四"上加 4 天,结果应该是下一个"星期三"。

我正在尝试在给定的一天之后获得第 n 个工作日(工作日)。

var addOneDay=function(date) {
    var result = new Date(date.getTime());
    result.setDate(result.getDate() + 1);
    return result;
};
var addWeekDays = function(date,days) {
    var result = new Date(date.getTime());
    for (var i = 0; i < days; i++) {
        do{
            result = addOneDay(result);
        }while( result.getDay()=== 6 || result.getDay()=== 0);
    };
    return result;
};
var date = new Date(2016,1,18);
console.log(addWeekDays(date,4));

根据ElenaDBA和Felix Kling的建议重新设计了代码:

var addWeekDays = function(date,days) {
    var result = new Date(date.getTime());
    for (var i = 0; i < days; i++) {
        result.setDate(result.getDate() + 1);
        if (result.getDay()=== 6 || result.getDay()=== 0) i--;
    };
    return result;
};
var date = new Date(2016,1,18);
console.log(addWeekDays(date,4));

这样的事情怎么样?

 var addOneDay = function (date) {
            var result = new Date(date.getTime());
            result.setDate(result.getDate() + 1);
            return result;
        };
        var addWeekDays = function (date, days) {
            var result = new Date(date.getTime());
            var counter = 1;
            while(counter <= days) {
                if (result.getDay() !== 6 && result.getDay() !== 0) {
                    counter = counter +1;
                }
                result = addOneDay(result);                  
            };
            return result;
        };
        var date = new Date(2016, 1, 18);
        console.log(addWeekDays(date, 4));

在本例中,输入日期为 2/18/2016,输出为 2/24/2016,就像您想要的那样