工作日两个日期之间的数

工作日两个日期之间的数

 近期遇到要求两个日期之间的工作日天数的问题。遂在网上找了下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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Div滚动条定位设置「建议收藏」

    Div滚动条定位设置「建议收藏」1.div&lt;divid="DataDiv"style="overflow-x:hidden;overflow-y:scroll;max-height:500px;"&gt;//数据&lt;/div&gt;2.通过JS去设置Div滚动条的位置document.getElementById(‘DataDiv’).scrollTop//Div滚动条的垂直位置设置属性…

    2022年7月12日
    17
  • 时间单位换算表

    时间单位换算表 时间单位换算表   1毫秒=1/1,000秒(s)               1秒=1000毫秒(ms)1微秒(μs)=1/1,000,000秒(s)    1秒=1,000,000微秒(μs)1纳秒=1/1,000,000,000秒(s)       1秒=1,000,000,000纳秒(ns)1皮秒=1/1,000,000,000,000秒(s) 

    2022年7月11日
    36
  • CPU 流水线的前世今生[通俗易懂]

    CPU 流水线的前世今生[通俗易懂]title:CPU流水线的前世今生date:2021-11-2121:56:40author:gatiemetags:-linux-architecture-intelcategories:-技术积累thumbnail:blogexcerpt:CPU流水线的探秘之旅本作品采用知识共享署名-非商业性使用-相同方式共享4.0国际许可协议进行许可,转载请注明出处,谢谢合作因本人技术水平和知识面有限,内容如有纰漏或者需要修正的地方,欢迎大家指正,鄙.

    2022年8月20日
    6
  • Xmind 2021快捷键

    Xmind 2021快捷键Xmind2021快捷键(同时按住;与按键字母大小无关)文件操作新建ctrl+n新建标签页ctrl+t打开ctrl+o保存ctrl+s另存为ctrl+shift+s关闭窗口ctrl+w编辑操作撤销ctrl+z展开子主题ctrl+/展开所有子分支alt+ctrl+/查找与替换ctrl+f首选项ctrl+shift+p插入操作子主题tab主题(同级之后)enter主题(同级之前)shift+enter父主题ctrl+enter联系

    2022年6月3日
    163
  • Pytest(5)美化插件进度条pytest-sugar「建议收藏」

    Pytest(5)美化插件进度条pytest-sugar「建议收藏」前言在我们进行自动化测试的时候,用例往往是成百上千,执行的时间是几十分钟或者是小时级别。有时,我们在调试那么多用例的时候,不知道执行到什么程度了,而pytest-sugar插件能很好解决我们的痛点。

    2022年8月6日
    4
  • [NOIP2011真题]选择客栈[通俗易懂]

    [NOIP2011真题]选择客栈[通俗易懂]题目背景NOIP2011提高组DAY1试题。题目描述丽江河边有n家很有特色的客栈,客栈按照其位置顺序从1到n编号。每家客栈都按照某一种色调进行装饰(总共k种,用整数0~k-1表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一

    2022年9月24日
    0

发表回复

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

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