AppScript/Javascript-在星期五和#x27之前增加2天;s日期,因此跳过周末

AppScript/Javascript-在星期五和#x27之前增加2天;s日期,因此跳过周末,javascript,google-apps-script,Javascript,Google Apps Script,我正在尝试制作一个宏,识别星期五的日期,并在该日期的基础上增加3天,以跳过周末,获得下一个星期一的日期。我有一个电子表格功能,可以为每天添加一个新块,更新到今天的日期。但是,它没有考虑到周末,所以最好跳过这些 为糟糕的新手js代码道歉 var date = new Date('July 26, 2019 13:00:00 -0500'); function skipWeekend(date){ while (date.getDate() <= 5 && date.getD

我正在尝试制作一个宏,识别星期五的日期,并在该日期的基础上增加3天,以跳过周末,获得下一个星期一的日期。我有一个电子表格功能,可以为每天添加一个新块,更新到今天的日期。但是,它没有考虑到周末,所以最好跳过这些

为糟糕的新手js代码道歉

var date = new Date('July 26, 2019 13:00:00 -0500');

function skipWeekend(date){
while (date.getDate() <= 5 && date.getDate() >0){
    console.log("The day is...",date);
    date+=1;
} console.log("The day is...",date.getDate()+3);
return (date)
}
skipWeekend(date);

理想需求:日期为‘2019年7月29日13:00:00-0500’


感谢您的帮助

,这样您就可以用一些逻辑来确定下一个工作日了。下面是一个如何实现这一目标的示例

Date.prototype.addDays=函数(天){
var date=新日期(this.valueOf());
date.setDate(date.getDate()+天);
返回日期;
}
函数getNextWeekday(日期){
//如果日期为周日至周四,则添加1天
如果(date.getDay()>=0&&date.getDay()<5){
返回日期。添加天数(1);
}否则{
//否则,请确定要添加的天数
返回日期.addDays(8-date.getDay());
}
}
var日期=新日期('2019年7月25日13:00:00-0500');
写(日期+'->'+getNextWeekday(日期)+'
'); 日期=新日期('2019年7月26日13:00:00-0500');
文件。写入(日期+'->'+getNextWeekday(日期))如果我理解正确,您需要一个
nextWorkingDay
功能。如果是这样,那将是一个更好的名字

代码中的一个问题是,您使用
getDate
方法,就好像它是
getDay
函数一样,但是第一个函数给出了一个月的哪一天(基于1),第二个函数给出了一周的哪一天(基于零)

您可以创建一个简单的查找字符串。以下内容将生成接下来的30个工作日:

函数下一个工作日(日期){
date.setDate(date.getDate()+“1111132”[date.getDay()]);
}
var日期=新日期('2019年7月26日13:00:00');
for(设i=0;i<30;i++){
下一个工作日(日期);
log(date.toString());

}
它有一个非常简单的解决方案,我希望这有助于:

var date = new Date('July 27, 2019 13:00:00 -0500');
switch (date.getDay()){
        case 5:
            date = date.setDate(date.getDate() + 3);
            break;
        case 6:
            date = date.setDate(date.getDate() + 2);
            break;
        case 7:
            date = date.setDate(date.getDate() + 1);
            break;
        default:
            break
}
var nextWorkingDate = new Date(date)

您发布的代码中没有
getDate
。您还使用了
而不是
&&
,并且缺少一些括号。请创建一个带有为什么识别星期五日期的?这不是一个周末,再加上两个周末。。。星期天?周末?当然,您希望识别周六,然后添加两天,或者周日,然后添加一天?
'2019年7月22日13:00:00-0500'
。。。星期一?映射到2019年7月29日13:00:00-0500’
?那是整整一个星期,而且还不到星期五。我很难理解你的问题。对不起,我的逻辑是垃圾。我已经更新了代码,以反映使星期五成为星期一所需的3天
var date = new Date('July 27, 2019 13:00:00 -0500');
switch (date.getDay()){
        case 5:
            date = date.setDate(date.getDate() + 3);
            break;
        case 6:
            date = date.setDate(date.getDate() + 2);
            break;
        case 7:
            date = date.setDate(date.getDate() + 1);
            break;
        default:
            break
}
var nextWorkingDate = new Date(date)