工作日两个日期之间的数

工作日两个日期之间的数

 近期遇到要求两个日期之间的工作日天数的问题。遂在网上找了下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="计算工作日" οnclick="getWorkDays()"> 
</form> 
</body> 
</html>

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109317.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • minicom的使用

    minicom的使用一、安装sudoapt-getinstallminicom二、配置运行$sudominicom-s便进入了minicom的配置界面,使用上下键选择Serialportsetup,回车。此时光标在“changewhichsetting”后面停留,它的上面有如下菜单:Serialportsetup[Enter]±————————-…

    2022年4月30日
    54
  • ora-01006:绑定变量不存在_输出参数不是绑定变量

    ora-01006:绑定变量不存在_输出参数不是绑定变量  #命令行新建job错误:ORA-01008并非所有变量都已绑定。 1、改正前代码:DECLAREjobNUMBER;begin      sys.dbms_job.submit(job=&gt;:job, what=&gt;’P_AUTO_FETCH_RECORDS;’, next_date=&gt;to_…

    2025年9月25日
    6
  • 面向对象——三大基本特征

    面向对象的三大基本特征:封装、继承和多态一、封装利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。用户无需知道对象内部的细节,但可以通过对象对外提供的接口来访问该对象。优点:减少耦合:可以独立地开发、测试、优化、使用、理解和修改 减轻维护的负担:可以更容易…

    2022年4月15日
    34
  • qml入门教程_前端从入门到放弃

    qml入门教程_前端从入门到放弃发现了一个问题:QML:如果你发现了你的main.cpp是这个就会爆上面错误。修改为:……….QMLweb:直接给跪下了https://qmlweb.github.io/&l

    2022年8月1日
    8
  • 一篇文章搞定java中的垃圾回收机制面试题[通俗易懂]

    一篇文章搞定java中的垃圾回收机制面试题[通俗易懂]  一篇文章搞定java中的垃圾回收机制面试题任何语言在运行过程中都会创建对象,也就意味着需要在内存中为这些对象在内存中分配空间,在这些对象失去使用的意义的时候,需要释放掉这些内容,保证内存能够提供给新的对象使用。对于对象内存的释放就是垃圾回收机制,也叫做gc,对于java开发者来说gc是一个双刃剑我们这里找了两张搞笑图片分别来表示c语言的垃圾回收和java的垃圾回收。注意:并…

    2022年5月27日
    43
  • 数据库索引的实现原理

    数据库索引的实现原理

    2022年2月24日
    59

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号