zoukankan      html  css  js  c++  java
  • 工作日两个日期之间的数

        近期遇到要求两个日期之间的工作日天数的问题。遂在网上找了下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>


    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    文件读写
    使用HttpClient实现文件的上传下载
    TreeMap
    Linux的目录结构与文件权限
    Hibernate中get()和load()方法的区别
    Hibernate中openSession()与getCurrentSession()的区别与联系
    Hibernate核心类和接口
    Hibernate连接数据库
    Struts2中OGNL表达式的用法
    Struts2中Result的配置
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4835940.html
Copyright © 2011-2022 走看看