zoukankan      html  css  js  c++  java
  • 各种时间函数

    1、判断两个日期的大小(t2比t1大返回true,否则返回false)

    function compareDate(t1, t2){
        var strs1= new Array(); //定义一数组
        strs1=t1.split("-"); //字符分割
        var strs2= new Array(); //定义一数组
        strs2=t2.split("-"); //字符分割
        if (strs1[2].length == 1) {
          strs1[2] = '0' + strs1[2];
        }
        if (strs2[2].length == 1) {
          strs2[2] = '0' + strs2[2];
        }
        if(parseInt(strs1[0])> parseInt(strs2[0])) { return false; }
        else if(parseInt(strs1[0]) <parseInt( strs2[0])) { return true; }
        else{}
        if(parseInt(strs1[1] )> parseInt(strs2[1])) { return false; }
        else if(parseInt(strs1[1]) <parseInt( strs2[1])) { return true; }
        else{}
        if (parseInt(strs1[2]) > parseInt(strs2[2])) { return false; }
        else if (parseInt(strs1[2]) <= parseInt(strs2[2])) { return true; }
        else{}
        return true;
    }

    2、一个日期过几天后是哪一天?

    function dateAfter(date,days){
        var  startDate  =  new  Date  (date);
        var  intValue  =  0;  
        var  endDate  =  null;  
    
        intValue  =  startDate.getTime();            
        intValue  +=  days  *  (24  *  3600  *  1000);
        endDate  =  new  Date  (intValue);  
        var year = endDate.getFullYear();
        var month = (endDate.getMonth()+1)<10 ? '0'+(endDate.getMonth()+1) : (endDate.getMonth()+1);
        var day = endDate.getDate() < 10 ? '0'+endDate.getDate() : endDate.getDate();
        return year+"-"+ month+"-"+ day;  
    }

    3、两个日期相隔多少天

    function  DateDiff(sDate1,  sDate2){    //sDate1和sDate2是2002-12-18格式  
        var  aDate,  oDate1,  oDate2,  iDays  
        aDate  =  sDate1.split("-")  
        aDate[1] = aDate[1].length == 1 ? '0' + aDate[1] : aDate[1];
        aDate[2] = aDate[2].length == 1 ? '0' + aDate[2] : aDate[2];
        oDate1  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])    //转换为12-18-2002格式  
        aDate  =  sDate2.split("-")  
        aDate[1] = aDate[1].length == 1 ? '0' + aDate[1] : aDate[1];
        aDate[2] = aDate[2].length == 1 ? '0' + aDate[2] : aDate[2];
        oDate2  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])  
        iDays  =  parseInt(Math.abs(oDate1  -  oDate2)  /  1000  /  60  /  60  /24)    //把相差的毫秒数转换为天数  
        return  iDays + 1
    }

    4、获取两个日期中间的所有日期(数组)

    // 给String对象添加getDate方法,使字符串形式的日期返回为Date型的日期  
    String.prototype.getDate = function () {
      var strArr = this.split('-');
      return new Date(strArr[0], strArr[1] - 1, strArr[2]);
    
    }
    // 给Date对象添加getYMD方法,获取字符串形式的年月日  
    Date.prototype.getYMD = function () {
    
      // 将结果放在数组中,使用数组的join方法返回连接起来的字符串,并给不足两位的天和月十位上补零  
          return [this.getFullYear(), getDaysArray.fz(this.getMonth() + 1), this.getDate()].join("-");
    
    }
    const getDaysArray = {
      // 获取间隔天数  
      getDays: function(day1, day2) {
          // 获取入参字符串形式日期的Date型日期  
          var st = day1.getDate();
          var et = day2.getDate();
    
          var retArr = [];
    
          // 获取开始日期的年,月,日  
          var yyyy = st.getFullYear(),
              mm = st.getMonth(),
                dd = st.getDate();
    
          // 循环  
          while (st.getTime() != et.getTime()) {
                retArr.push(st.getYMD());
    
                // 使用dd++进行天数的自增  
                st = new Date(yyyy, mm, dd++);
    
          }
    
            // 将结束日期的天放进数组  
            retArr.push(et.getYMD());
            retArr.splice(0, 1);
    
            return retArr; // 或可换为return ret;  
    
      },
    
    
      // 给月和天,不足两位的前面补0  
      fz: function(num) {
        if (num < 10) {
            num = "0" + num;
    
        }
        return num
    
      }
    }
    module.exports = {
        getDays: getDaysArray.getDays
    }
  • 相关阅读:
    hdu 4002 Find the maximum
    hdu 2837 坑题。
    hdu 3123
    zoj Treasure Hunt IV
    hdu 2053 Switch Game 水题一枚,鉴定完毕
    poj 1430 Binary Stirling Numbers
    hdu 3037 Saving Beans
    hdu 3944 dp?
    南阳oj 求N!的二进制表示最低位的1的位置(从右向左数)。
    fzu 2171 防守阵地 II
  • 原文地址:https://www.cnblogs.com/cutone/p/9024232.html
Copyright © 2011-2022 走看看