javascript-求教js,计算当前时间后5个工作日,要求除去国家法定节假日!

问题描述

求教js,计算当前时间后5个工作日,要求除去国家法定节假日!

以下代码只能除去双休日,没有除去法定节假日。
/**

  • 获取某日期后几个工作日后的日期
  • 参数:date:给定日期;itervalByDay:相隔工作日
  • @author xxx
  • 创建时间 2015-06-25
    */
    function getworkday(dat,itervalByDay){

    var str=dat.split("-");
    var date=new Date();
    date.setUTCFullYear(str[0], str[1] - 1, str[2]);
    date.setUTCHours(0, 0, 0, 0);
    var millisceonds =date.getTime();
    for(var i=1;i<=itervalByDay;i++){
    millisceonds +=24*60*60*1000;
    date.setTime(millisceonds);
    if(date.getDay()==0||date.getDay()==6) i--;
    }

    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var day = date.getDate();
    var rq = year + "-" + formatTen(month) + "-" + formatTen(day);

    return rq;
    }

解决方案

 <!DOCTYPE html>
<html>
<head>
</head>
<body>

<script>
var holiday= ['2015-01-01','2015-01-02','2015-01-03','2015-01-08'];
var holidayMap={};
function getMap(hd){
   for(var i=0;i<hd.length;i++){
      holidayMap[hd[i]]='1';
   }
}
function formatTen(f){
  if (parseInt(f,10)<10){
      return '0'+f;
  }
  return f;
}
function formateDate(date){
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
return year + "-" + formatTen(month) + "-" + formatTen(day);
}
function getworkday(dat,itervalByDay){
var str=dat.split("-");
var date=new Date();
date.setUTCFullYear(str[0], str[1] - 1, str[2]);
date.setUTCHours(0, 0, 0, 0);
var millisceonds =date.getTime();
for(var i=1;i<=itervalByDay;i++){
   millisceonds +=24*60*60*1000;
   date.setTime(millisceonds);

   if(date.getDay()==0||date.getDay()==6){
     i--;
   }else{//过滤节假日
     var d=formateDate(date);
     if(holidayMap[d]){
        i--;
     }
   }
}

var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
var rq = year + "-" + formatTen(month) + "-" + formatTen(day);

return rq;
}
getMap(holiday);
var r = getworkday('2015-1-1',5);
alert(r);
</script>
</body>
</html>

解决方案二:

js计算某个时间距离当前时间的日时秒
JS动态显示当前系统时间

解决方案三:

法定假日 不好确定时间点 ,这个可以自己用一个key-value存起来,然后以获取的时间为key,find value ,看能不能拿到值,拿到就过滤掉。

key-value 你自己设置好,也可以看看有没有网上提供额API接口可以查

时间: 2024-09-16 09:56:03

javascript-求教js,计算当前时间后5个工作日,要求除去国家法定节假日!的相关文章

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

前言 这次认认真真又重新看了相关内容,现把需要注意的地方总结如下: 1.通过getDay()得到的星期数是从0开始,0表示星期天,之后从1~6依次表示星期一到星期六: 2.得到日期需使用getDate()而不是getDay() ,因为可能习惯性地认为日期就是天数,可能会使用getDay() ,但其实getDay()是用于得到星期数的: 3.通过getMonth()得到月份,从0开始计数,所以需要再加1. 实例代码如下: <html> <head> <title><

JavaScript中 日期输入框焦点失去后,改变其他日期的时间

问题描述 JavaScript中 日期输入框焦点失去后,改变其他日期的时间 我选中第一个日期离开光标后,后面的日期怎样分别自动更改为第一个日期所在月的周二到周一的时间 解决方案 焦点失去有一个监听时间叫onblur(印象中差不多这样),可以让第一个时间注册这个监听事件,在监听时间的里面写js代码控制其他控件 解决方案二: 对应插件有自己的方法,看看api,然后找到设置值的方法使用就行了 解决方案三: 看日期插件的api,一般有对应的事件配置,如my97的onpicking,然后通过onpicki

等待指定时间后自动跳转或关闭当前页面的js代码

本文为大家详细介绍下如何通过js实现等待指定时间后自动跳转或关闭当前页面的脚步代码,感兴趣的朋友可以参考下哈,希望对大家有所帮助   复制代码 代码如下: //指定时间之后跳转 <script language="javascript"> function go( ) {//定义函数 window.location="main.html";//页面跳转 } window.setTimeout("go()",1000);//1秒后执行函

Js代码失效问题,代码运行一段时间后,突然报错,请各位帮忙看一下,谢谢

问题描述 Js代码失效问题,代码运行一段时间后,突然报错,请各位帮忙看一下,谢谢 代码如下: <%@ page language="java" import="java.util.*" pageEncoding="gbk"%> <%@include file="/common/taglibs.jsp"%> <!DOCTYPE html> <html> <head> &

js时间比较 js计算时间差的简单实现方法_javascript技巧

页面使用dateTimePicker获取数据类型为"12:12:12" 如果输入"11:11:11"要自动计算两者时间差 代码如下: var a="12:49:00",b="14:49:00"; s=a.split(":"); e=b.split(":"); var daya = new Date(); var dayb = new Date(); daya.setHours(s[0])

基于JavaScript实现一定时间后去执行一个函数_javascript技巧

在实际需要中可能需要规定在指定的时间之后再去执行一个函数以达成期望的目的,这也就是一个定时器效果,恰好在js中就已经给定了这样的一个函数setTimeout(),下面先介绍一下次函数的 用法: 语法:  复制代码 代码如下: setTimeout(code,interval) 此函数能够规定在指定的在指定的事件之后去执行一段指定代码,此代码只执行一次. setTimeout()函数具有两个参数,第一个参数规定要执行的执行代码,第二个参数规定在多长时间后去执行代码,单位是毫秒. 代码实例: <!D

JavaScript实现页面内容在设定时间后消失

javascript|定时|页面 <HTML><HEAD><META http-equiv='Content-Type' content='text/html; charset=gb2312'><TITLE>在页面上显示的一部分内容,在经过设定好的时间后会自动消失</TITLE></HEAD><BODY > <SCRIPT LANGUAGE="JavaScript1.2">adTime=10

用js计算页面执行时间的函数_时间日期

从别的站看到的一个不错的用js计算页面执行时间,比用asp要好点啊<script language=javascript>  <!--  var startTime,endTime;  var d=new Date();  startTime=d.getTime();  //-->  </script> <script language=javascript>d=new Date();endTime=d.getTime ();document.write((

C#写从log文件向access自动导入数据的窗口程序,运行一段时间后停止工作,问题事件名称:CLR20r3,求教各位该怎么解决?谢谢

问题描述 各位前辈好:我近日用C#写了个小窗口程序,功能是从log文件向access自动导入数据,并设置间隔一段时间自动运行.但是现在发现,程序起初可以正常实现导入功能,但是运行一段时间后就会停止,问题事件名称:CLR20r3,详细信息如下:问题签名01:readandsyncmonitoringdata.exe问题签名02:1.0.0.0问题签名03:54717fa3问题签名04:System.Data问题签名05:4.0.30319.18408问题签名06:52311175问题签名07:1b