用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、付费专栏及课程。

余额充值