求教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;
    }

 <!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>

法定假日 不好确定时间点 ,这个可以自己用一个key-value存起来,然后以获取的时间为key,find value ,看能不能拿到值,拿到就过滤掉。

key-value 你自己设置好,也可以看看有没有网上提供额API接口可以查