【问题标题】:Adding additional days but only on a Weekday (Mon-Fri) and skipping the weekend添加额外的日子,但仅限于工作日(周一至周五)并跳过周末
【发布时间】:2015-01-26 16:40:14
【问题描述】:

如何修改下面的函数,如果getdate('add',2) 被调用并且当前日期是星期五,即。 (2015 年 2 月 23 日)额外的 2 个“工作周”日期将使新的“工作周”日期为 2015 年 2 月 27 日。

我需要基本跳过周末的功能。如果当前日期是星期五。

function getdate(type,y) {
    if (type == 'add') {
        var someDate = new Date();
        var numberOfDaysToAdd = y
        someDate.setDate(someDate.getDate() + numberOfDaysToAdd); 
        var dd = someDate.getDate();
        var mm = someDate.getMonth() + 1;
        var yyyy = someDate.getFullYear();
        return dd + '/'+ mm + '/'+ yyyy
    }
}

【问题讨论】:

  • 我不确定,但这可能是你想要的jsfiddle.net/93h53a75。如果您在添加后结束的日期是星期六,它会增加两天以返回下周一,或者如果您在添加后结束的日期是星期天,它会增加一天以返回下周一.

标签: javascript date


【解决方案1】:

我使用while检查隔天是否是周末,如果是则跳过。

function getdate(type,y) {
    if (type == 'add') {
        var someDate = new Date();
        var numberOfDaysToAdd = y;
        var i=1;
        while(i<=numberOfDaysToAdd){
            someDate.setDate(someDate.getDate() + 1); 
            if(someDate.getDay() != 0 && someDate.getDay() != 6){//if the day isn't weekend days,then count it.
                i++;
            }

        }
        var dd = someDate.getDate();
        var mm = someDate.getMonth() + 1;
        var yyyy = someDate.getFullYear();
        return dd + '/'+ mm + '/'+ yyyy
    }
}

因此,即使添加的日期是接下来的 2 周或更长时间,您也可以跳过所有周末的代码。

【讨论】:

  • 完美的工作电子。这个代码是神送的!你惊人的!非常感谢。
猜你喜欢
  • 2018-02-16
  • 1970-01-01
  • 1970-01-01
  • 2017-09-16
  • 1970-01-01
  • 2014-10-09
  • 1970-01-01
  • 1970-01-01
  • 2020-12-07
相关资源
最近更新 更多