工作日两个日期之间的数

工作日两个日期之间的数

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


相关推荐

  • Android——谷歌官方下拉刷新控件SwipeRefreshLayout「建议收藏」

    Android——谷歌官方下拉刷新控件SwipeRefreshLayout「建议收藏」转自:http://blog.csdn.net/zouzhigang96/article/details/50476402前言: 如今谷歌推出了更官方的下拉刷新控件,这无疑是对安卓开发人员来说是个好消息,很方便的使用这个SwipeRefreshLayout控件实现下拉刷新功能。Android4.0以下的版本需要用到android-support-v4.jar包才能用到 andr

    2022年6月25日
    31
  • java高级语言程序设计_高级程序设计语言包括

    java高级语言程序设计_高级程序设计语言包括Java程序设计(高级及专题)- XML

    2022年4月22日
    46
  • Vue.js 父组件向子组件传值和子组件向父组件传值

    Vue.js 父组件向子组件传值和子组件向父组件传值父组件向子组件传值组件实例定义方式,注意:一定要使用props属性来定义父组件传递过来的数据&amp;lt;script&amp;gt;//创建Vue实例,得到ViewModelvarvm=newVue({el:’#app’,data:{msg:’这是父组件中的消息’},components…

    2022年5月3日
    36
  • ubuntu分区方案(合并分区)

    MostPCoperatingsystemsstillworkwithanancientdiskpartitionschemethathistoricallymakesdistinctionbetweenprimaryandextendedpartitions.Italsoplacesalimitationforfourprimarypart

    2022年4月14日
    529
  • JMH简介

    JMH简介  JMH是新的microbenchmark(微基准测试)框架(2013年首次发布)。与其他众多框架相比它的特色优势在于,它是由Oracle实现JIT的相同人员开发的。特别是我想提一下AlekseyShipilev和他优秀的博客文章。JMH可能与最新的OracleJRE同步,其结果可信度很高。JMH的示例链接。使用JMH仅需满足2个必要条件(其他所有都是建议选项):设置jmh-…

    2022年7月11日
    29
  • bat 剪切文件_bat延时命令

    bat 剪切文件_bat延时命令扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件。首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(…

    2022年9月24日
    5

发表回复

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

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