计算两个日期之间的工作日天数
2014-05-10 10:50
489 查看
最近遇到要求两个日期之间的工作日天数的问题,遂在网上找了下js的代码,参考了下别人的代码,发现写的都有些冗余,于是自己思考,进行了一下简单处理。主要是在循环处理上进行了精简。
对剩余天数的循环,也就可以考虑是对开始日期到剩余天数之间的处理,循环开始日期到剩余天数之间有多少个周六周日(最多只有一个周六或者一个周日),由于当前开始日期在(0-6)之间,也就是当前开始日期的星期对应的数字加上剩余天数(0-6)的循环一定在(0-11)之间,所以0,7代表周日,6代表周六。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk"> <title>工作日计算</title> <script language="javascript"> //函数 function getWorkDays(){ var startDate = new Date(document.getElementById("startDate").value.replace(/-/g, "/")); //结束日期 var endDate = new Date(document.getElementById("endDate").value.replace(/-/g, "/")); var diffDays = (endDate - startDate)/(1000*60*60*24) + 1;//获取日期之间相差的天数 var remainDay = diffDays % 7;//得到日期之间的余数(0-6之间) var weeks = Math.floor(diffDays / 7);//获取日期之间有多少周 var weekends = 2 * weeks;//计算每周*2 得到取整的的周六日天数 var weekDay = startDate.getDay();//获取开始日期为星期几(0,1,2,3,4,5,6)0对应星期日 for(var i = 0;i < remainDay;i++){//循环处理余下的天数有多少个周六或者周日(最多出现一个周六或者一个周日) if(((weekDay + i)==6)||((weekDay + i)==0)||((weekDay + i)==7)){ weekends = weekends + 1; } } alert((diffDays-weekends));//工作日=相差天数减去周六日天数 } </script> </head> <body> <form> 起始日期:<input type="text" id="startDate" name="startDate" value="2012/03/01"> 截至日期<input type="text" id="endDate" name="endDate" value="2014/05/20"> <input type="button" name="BT" value="计算工作日" onclick="getWorkDays()"> </form> </body> </html>
相关文章推荐
- 强大的PLSQL - 计算两个日期之间的工作日天数-除去(周末和公共假日
- 计算两个日期之间工作日天数(c#实现)
- 计算两个日期之间工作日天数(c#实现)
- 在Access中计算两个日期之间的工作日天数
- 【翻译自mos文章】计算Oracle数据库中两个日期之间的工作日天数
- 计算两个日期之间的工作日天数 [节假日api]
- 计算两个日期之间工作日天数
- 在Access中计算两个日期之间的工作日天数
- java计算两个日期之前的天数(工作日),排除节假日和周末
- iOS-计算两个日期之间的天数
- 计算两个日期之间周末天数in php
- SQL计算两个日期之间的工作天数(除过周六日的天数)
- 用VBA计算两个日期之间的工作日(去掉周末两天)
- mysql计算两个日期之间的天数
- Calendar类计算两个日期之间相差天数
- java计算两个日期之间相差的天数
- java计算两个日期之间相差的天数
- asp.net中计算两个日期之间的相差的天数的方法(vb)
- java计算两个日期之间相差天数和相隔天数详解
- Java计算两个日期时间之间的天数最简方法