添加3个工作日到新的日期

时间:2014-02-26 05:09:49

标签: jquery html

我想在3个工作日内添加新日期。例如,如果用户选择星期三,那么它应该显示星期一。星期四,它应该显示星期二,星期五应该显示星期三。以下是代码:

JQUERY:

    $(function () {

    $('.one').datepicker();

    $('#data').on('change', '.one', function (date) {                
        var date2 = $(this).datepicker('getDate');
            date2.setDate(date2.getDate() + 3);
            $(this).parent('td').next('td').find('.two').datepicker('setDate', date2);

    });

    $('.two').datepicker();

    });

3 个答案:

答案 0 :(得分:1)

如果您能清楚地描述情况,则可以轻松编写逻辑。

如果最初的一天是:

,那么多少个日历日是3个工作日
  • 星期一?
  • 星期二?
  • 星期三?
  • 星期四?
  • 星期五?
  • 星期六?
  • 周日?

回答这个问题,你会想出这样的逻辑:

var day = date2.getDay();
if (day == 3 /* wed */ || day == 4 /* thur */ || day == 5 /* fri */) {
    date2.setDate(date2.getDate() + 5); // 3 days + 2 weekend days!
} else if (day == 6 /* sat */) {
    date2.setDate(date2.getDate() + 4); // 3 days + 1 weekend day!
} else { /* either sun, mon, or tue */
    date2.setDate(date2.getDate() + 3); // 3 days
}

答案 1 :(得分:0)

请尝试以下代码。

$(function () {

    $('.one').datepicker();

    $('#data').on('change', '.one', function (date) {                
        var date2 = $(this).datepicker('getDate');
            date2.setDate(date2.getDate() + 3);
            var day2=date2.getDay(); //0=Sun, 1=Mon, .., 6=Sat
            if(day2==0 || day2==6){
                date2.setDate(date2.getDate()+2);
            }
            $(this).parent('td').next('td').find('.two').datepicker('setDate', date2);

    });

    $('.two').datepicker();

    });

答案 2 :(得分:0)

试试这个,

var date=new Date();
cday=date.getDay();
var addDays;
switch(cday){
    case 0: // case sunday
    case 6: // case saturday
        addDays=4;break;
    case 3: // case wednesday
    case 4: // case thursday
    case 5: // case friday
        addDays=5;break;
    default:
        addDays=3;// for Monday and Tuesday
}
alert('New date: \n'+new Date(date.setDate(date.getDate()+addDays)));

Demo