用JS计算两个日期之间有多少个休息日

< script type = " text/javascript " >
function weekendBetween(dtStart, dtEnd) {   
   
if ( typeof dtEnd == ' string '
        dtEnd
= StringToDate(dtEnd); 
   
if ( typeof dtStart == ' string '
        dtStart
= StringToDate(dtStart); 

   
var days =   parseInt((dtEnd - dtStart) / 86400000 ); 
   
var adds = 0 ;
   
var m = (days + dtStart.getDay() + 1 ) % 7 ;
   
if (m > 0 )
        adds
= m;
   
if (m > 2 )
        adds
= 2 ;
   
   
var redu = 0
   
if (dtStart.getDay() > 0 )
        redu
= 2 ;
   
if (dtStart.getDay() == 1 )
        redu
= 1 ;
       
   
var subtotal = parseInt((days + dtStart.getDay() + 1 ) / 7 ) * 2 ;
   
return subtotal - redu + adds;
}
 
function StringToDate(DateStr) 

   
var converted = Date.parse(DateStr); 
   
var myDate = new Date(converted); 
   
if (isNaN(myDate)) 
    { 
       
var arys = DateStr.split( ' - ' ); 
        myDate
= new Date(arys[ 0 ],arys[ 1 ],arys[ 2 ]); 
    } 
   
return myDate; 
}


alert(
" 2-1~~~~2-18 " );
alert(weekendBetween(
new Date( 2008 , 2 , 1 ), new Date( 2008 , 2 , 18 )));

alert(
" 2-1~~~~2-15,  字符型参数 " );
alert(weekendBetween(
" 2008-2-1 " , " 2008-2-15 " ));

alert(
" 2-1~~~~2-16,  字符型参数 " );
alert(weekendBetween(
" 2008-2-1 " , " 2008-2-16 " ));

alert(
" 2-1~~~~2-17,  字符型参数 " );
alert(weekendBetween(
" 2008-2-1 " , " 2008-2-17 " ));

alert(
" 2-3~~~~2-16,  字符型参数 " );
alert(weekendBetween(
" 2008-2-3 " , " 2008-2-16 " ));
</ script >
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值