zoukankan      html  css  js  c++  java
  • 计算两个日期之间的工作日

    1、对于文本域待遇onblur事件最常用 的是onchange事件,避免在初始化吃出现onblur的情况,造成不必要的判断

    2 js中处理date类型对象时必须将string类型的对象通过Date.parse()转化为date类型的对象以后再采用js中的时间处理函数来操作。通过插件产生的时间字符串往往是中间用“-”隔开的,但是在js中的Date类型数据处理中确实用“/”分割的,所以必须转化。

    3 js中的时间处理函数如下:

    var myDate = new Date();     //取得(创建)当前时间   

    •   myDate.getYear();       //获取当前年份(2位)      
    •   myDate.getFullYear();   //获取完整的年份(4位,1970-????)      
    •   myDate.getMonth();      //获取当前月份(0-11,0代表1月)      
    •   myDate.getDate();       //获取当前日(1-31)      
    •   myDate.getDay();        //获取当前星期X(0-6,0代表星期天)      
    •   
    •   myDate.getTime();       //获取当前时间(从1970.1.1开始的毫秒数)      
    •   myDate.getHours();      //获取当前小时数(0-23)      
    •   myDate.getMinutes();    //获取当前分钟数(0-59)      
    •   myDate.getSeconds();    //获取当前秒数(0-59)      
    •   myDate.getMilliseconds();   //获取当前毫秒数(0-999)      
    •   myDate.toLocaleDateString();    //获取当前日期      
    •   var mytime=myDate.toLocaleTimeString();    //获取当前时间      
    •   myDate.toLocaleString( );       //获取日期与时间  

    计算两个日期之间工作日的函数如下:

    function calculateWorkDays(fromStr,toStr){
    var from = new Date();
    var to = new Date();
    var fromTime = Date.parse(fromStr.replace(/-/g,"/"));
    var toTime = Date.parse(toStr.replace(/-/g,"/"));

    from.setTime(fromTime);
    from.setHours(0);
    from.setMinutes(0);
    from.setSeconds(0);

    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);
    }
    return workdays
    }

  • 相关阅读:
    动态可配置表单的设计构思
    mysql之视图
    mysql学习之数据备份和恢复
    mysqli操作
    mysql登录出现1045错误修改方法
    mysql之简单的多表查询
    sql优化的方法总结
    mysql语句操作
    linux 批量替换文件内容
    zend framework 数据库操作(DB操作)总结
  • 原文地址:https://www.cnblogs.com/moonfans/p/3332802.html
Copyright © 2011-2022 走看看