日期:2014-05-16  浏览次数:20387 次

怎么根据两个日期得到除节假日 周末外的天数
有开始日期 ftdt,结束日期todt,要得到这两个日期除节假日 周末外的天数,
节假日放在一数组中了
var Holiday = ["2013-01-01", "2013-01-02", "2013-01-03","2013-05-01","2013-09-01", "2013-10-01", "2013-10-02", "2013-10-03", "2013-10-04];

当ftdt=2013-01-17  todt=2013-01-21
得到天数3

当ftdt=2013-10-02  todt=2013-10-07
得到天数2

得这么写这样一个function?

------解决方案--------------------
改了下,兼容低版本浏览器

function workdays(d1,d2){
  function toD(d){return new Date(d.replace(/-/g,'/')) }   
  function ds(d){return d.getTime()/864E5>>0} 
  var day,d,d1=toD(d1),d2=toD(d2),works=0;
  if(d1>d2){d=d1;d1=d2;d2=d}
  day=d1.getDay();
  d1=ds(d1),d2=ds(d2);
  while(d1<=d2)if( (day+d2-d1++)%7%6 ) works++;
  return works;
}