cjwlz 2015-08-11 08:54 采纳率: 0%
浏览 6644

求教js,计算当前时间后5个工作日,要求除去国家法定节假日!

以下代码只能除去双休日,没有除去法定节假日。
/**

  • 获取某日期后几个工作日后的日期
  • 参数:date:给定日期;itervalByDay:相隔工作日
  • @author xxx
  • 创建时间 2015-06-25
    */
    function getworkday(dat,itervalByDay){

    var str=dat.split("-");
    var date=new Date();
    date.setUTCFullYear(str[0], str[1] - 1, str[2]);
    date.setUTCHours(0, 0, 0, 0);
    var millisceonds =date.getTime();
    for(var i=1;i<=itervalByDay;i++){
    millisceonds +=24*60*60*1000;
    date.setTime(millisceonds);
    if(date.getDay()==0||date.getDay()==6) i--;
    }

    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var day = date.getDate();
    var rq = year + "-" + formatTen(month) + "-" + formatTen(day);

    return rq;
    }

  • 写回答

2条回答 默认 最新

  • danielinbiti 2015-08-11 09:36
    关注
     <!DOCTYPE html>
    <html>
    <head> 
    </head>
    <body>
    
    <script>
    var holiday= ['2015-01-01','2015-01-02','2015-01-03','2015-01-08'];
    var holidayMap={};
    function getMap(hd){
       for(var i=0;i<hd.length;i++){
          holidayMap[hd[i]]='1';
       }
    }
    function formatTen(f){
      if (parseInt(f,10)<10){
          return '0'+f;
      }
      return f;
    }
    function formateDate(date){   
    var year = date.getFullYear(); 
    var month = date.getMonth() + 1; 
    var day = date.getDate(); 
    return year + "-" + formatTen(month) + "-" + formatTen(day);
    }
    function getworkday(dat,itervalByDay){
    var str=dat.split("-");
    var date=new Date(); 
    date.setUTCFullYear(str[0], str[1] - 1, str[2]); 
    date.setUTCHours(0, 0, 0, 0); 
    var millisceonds =date.getTime();
    for(var i=1;i<=itervalByDay;i++){
       millisceonds +=24*60*60*1000;
       date.setTime(millisceonds);
    
       if(date.getDay()==0||date.getDay()==6){
         i--;
       }else{//过滤节假日
         var d=formateDate(date);
         if(holidayMap[d]){
            i--;
         }
       }
    }
    
    var year = date.getFullYear(); 
    var month = date.getMonth() + 1; 
    var day = date.getDate(); 
    var rq = year + "-" + formatTen(month) + "-" + formatTen(day);
    
    return rq;
    }
    getMap(holiday);
    var r = getworkday('2015-1-1',5);
    alert(r);
    </script>
    </body>
    </html>
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘