`

js计算工作日(除星期六和星期天不计算)内

    博客分类:
  • js
阅读更多
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>假日?算</title>
<script language="javascript">
//假日表
var holidays = new Array();
holidays[holidays.length] = new Date("2009/10/06");
holidays[holidays.length] = new Date("2009/10/10");

function getWorkDays(){
var dd = document.getElementById("days");
var startDate=document.getElementById("dateFrom").value;
var obj= new Array(); //定?一??
var obj= startDate.split("-");  
var startDate1=obj[0]+"/"+obj[1]+"/"+obj[2];
var endDate =document.getElementById("dateTo").value;
var objEnd= new Array(); //定?一??
var objEnd = endDate.split("-"); 
var endDate1=objEnd[0]+"/"+objEnd[1]+"/"+objEnd[2];

dd.value=calculateWorkDays(startDate1,endDate1,holidays);
}

function calculateWorkDays(fromStr, toStr,holidayArray){
var from = new Date();
var to = new Date();
var fromTime = Date.parse(fromStr);
var toTime = Date.parse(toStr);
from.setTime(fromTime);
from.setHours(0);
from.setMinutes(0);
from.setSeconds(0);
var orgTime = from.getTime();

to.setTime(toTime);
to.setHours(0);
to.setMinutes(0);
to.setSeconds(0);

if(from.getTime() > to.getTime()){
return 0;
}
//把起始日都修正到星期六 javascript的星期?0?始,所以+1??理
var sDayofWeek = from.getDay()+1;
var workdays=0;

if(sDayofWeek > 1 && sDayofWeek < 7)
{
   from.setDate(from.getDate()-(sDayofWeek%7));
   workdays-=((sDayofWeek-2)>0)?sDayofWeek-2:0;
}
//?算??日期之?的天?

var totalDays = (to.getTime()-from.getTime())/(1000*60*60*24)+1;
workdays+=Math.floor(totalDays/7)*5;

//修正最后剩余天?
if((totalDays%7-2)>0){
workdays+=(totalDays%7-2);
}

if(holidayArray!=null){
for(var i=0;i<holidayArray.length;i++){
if(holidayArray[i].getTime()>orgTime && holidayArray[i].getTime()<to.getTime()){
if(holidayArray[i].getDay()>0 && holidayArray[i].getDay()<6){
workdays--;
}
}
}
}

return workdays;
}



</script>
</head>
<body>
<form>
?<input type="text" id="dateFrom" name="fromDate" value="2009-08-06" size="10">
到<input type="text" id="dateTo" name="toDate" value="2009-08-07" size="10">
有<input type="text" id="days" name="days" value="" size="5">?工作日
<input type="button" name="BT" value="?算工作日" onclick="getWorkDays()">
</form>
</body>
</html>
0
0
分享到:
评论

相关推荐

    计算工作日

    本示例提供了一个完整的解决方案,用于计算两个指定日期之间的有效工作日(不包括周末和自定义的节假日)。 #### 二、关键函数解析 主要关注两个关键函数:`getWorkDays()` 和 `calculateWorkDays()`。 ##### 1. ...

    JS如何判断某天为星期几

    4. 最终返回的结果是通过`(deltmonth + deltyear + deltdate) - Math.floor((deltmonth + deltyear + deltdate) / 7) * 7`计算得来的,这实际上是在计算一周内的第几天,但其计算逻辑较为晦涩,不易理解和维护。...

    js获取日期跟星期几的一段小代码

    但需要注意的是,JavaScript的`getDay()`返回的是一个数字,表示星期日为0,星期一为1,依此类推,到星期六为6。 ```javascript var dayOfWeek = today.getDay(); ``` 为了将这个数字转换为人类可读的星期几,我们...

    javaScript 计算两个日期的天数相差(示例代码)

    例如,若要获取星期几,可以使用`getDay()`方法,该方法返回一个0到6的整数,分别代表星期日到星期六。 总结来说,本文提供了两个使用JavaScript计算日期差的技巧。一个是基于日期字符串的计算,另一个是基于当前...

    js 取时间差去掉周六周日实现代码

    在企业或个人项目中,我们经常需要计算工作日的时间差,例如计算合同有效期限内,或者项目交付的预计工作日数。 首先,文章中提到了一种常见的需求,即计算两个日期之间的天数差。在JavaScript中,我们可以利用Date...

    jQuery简单实现根据日期计算星期几的方法

    例如,`getDay()`方法返回的是0(表示星期日)到6(表示星期六)之间的数字,代表当前日期是一周中的哪一天。 在提供的代码示例中,定义了一个名为`ddd`的函数,它接受一个参数`types`,这个参数是一个1到7之间的...

    【JavaScript源代码】vue开发之moment的介绍与使用.docx

    在前端开发中,特别是使用 Vue.js 框架的时候,我们经常需要处理日期和时间相关的任务,比如显示非标准格式的日期、计算时间差等。JavaScript 的内置 `Date` 对象虽然能够完成这些工作,但其语法较为复杂,操作不够...

    JavaScript数字日期转化为汉字日期格式.rar_javascript

    同时,JavaScript社区也有许多成熟的库,如moment.js或date-fns,它们提供了丰富的日期和时间处理功能,包括本地化,可以简化我们的工作。 最后,提及的"www.pudn.com.txt"文件可能是文档来源的注释或者资源链接,...

    HW3-Redo:重做2021年3月27日(星期六)

    【标题】"HW3-Redo:重做2021年3月27日(星期六)"可能指的是一个编程作业或者项目,它要求重新完成或修正2021年3月27日那天的工作。这个作业或项目可能是关于JavaScript编程的,因为标签为“JavaScript”,这暗示了...

    js时间操作方法大全集锦完整版

    ### JavaScript 时间操作方法详解 #### 一、概述 ...通过这些方法,我们可以轻松地获取和设置日期及时间信息,以及进行日期的比较和计算。掌握这些基本操作对于日常的Web开发工作来说是非常重要的。

    doomsday-battle:“ Doomsday”算法,用于查找给定日期的工作日,并以8种语言实现,以争夺谁最强!

    用于计算公历中给定日期的工作日的算法,以 , , , , , , 和。 他们每个人都有什么亮点? 算法 您将所有这些数字相加即可得出工作日: 这一天(即2049年8月18日是18日) 月份代码(从一月到十二月为6、2、2...

    js Date概念详细介绍

    2. getDay():返回Date对象中一周的某一天,范围是0(星期天)到6(星期六)。 3. getMonth():返回Date对象中的月份,范围是0(一月)到11(十二月)。 4. getFullYear():以四位数字返回Date对象中的年份。 5. ...

    javascript中获取下个月一号,是星期几

    关于Date对象的getDay方法,它返回一个从0(星期天)到6(星期六)的整数,代表星期几。这是一个基于零的索引,因此在实际使用中,如果需要输出星期的名称,比如“星期天”、“星期一”等,需要对这个值进行相应的...

    JavaScript页面实时显示当前时间实例代码

    1. `getDay()`:返回一个整数,表示星期几,其中0代表星期日,1代表星期一,以此类推,直到6代表星期六。 2. `getDate()`:返回一个月中的某一天,即1到31之间的数字。 3. `getMonth()`:返回月份,但这里的月份是从...

    JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)

    var weekArr = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天']; var week = weekArr[date.getDay()]; ``` 5. **组合日期和时间字符串**: 最后,使用定义的分隔符将所有日期和时间部分...

    PHP和Javascript的实用代码段收藏

    echo "&lt;tr&gt;&lt;th&gt;日&lt;/th&gt;&lt;th&gt;一&lt;/th&gt;&lt;th&gt;二&lt;/th&gt;&lt;th&gt;三&lt;/th&gt;&lt;th&gt;四&lt;/th&gt;&lt;th&gt;五&lt;/th&gt;&lt;th&gt;六&lt;/th&gt;&lt;/tr&gt;"; for ($i = 0; $i $firstDayOfWeek; $i++) { echo "&lt;td&gt;&nbsp;&lt;/td&gt;"; } $daysInMonth = date('t', ...

    超实用的javascript时间处理总结

    5. `getDay()`:返回一周中的星期几,0代表星期日,1至6分别代表星期一至星期六。 6. `getTime()`:返回自1970年1月1日以来的毫秒数。 7. `getHours()`:返回当前小时数,范围是0到23。 8. `getMinutes()`:返回当前...

    jQuery日历周历月历插件.zip

    在JavaScript中,计算星期的逻辑可能涉及到对日期对象的处理,如`getDay()`方法,它返回的是星期几(0表示星期日,6表示星期六)。 3. 月历功能:除了周视图,插件还支持月视图,显示整个月的日期布局。这需要处理...

    jQuery简单实现日历的方法

    - 通过调用getDay()方法可以获取星期几,其返回值是0(星期天)到6(星期六)之间的整数。 - 通过调用getDate()方法可以获取该月的天数。 2. 创建日历布局: - 使用HTML和CSS建立日历的外观框架,包含必要的元素...

    JS实现网页标题栏显示当前时间和日期的完整代码

    - `getDay()` 返回一周中的某一天(0-6,0代表星期日,6代表星期六)。 为了得到中文的月份和星期,我们定义了两个数组,分别存储了中文月份和星期的描述: ```javascript var isnMonth = new Array("1月", "2月",...

Global site tag (gtag.js) - Google Analytics