zoukankan      html  css  js  c++  java
  • 获取指定日期的前一天日期

    看博客的时候,看到一篇文章,是获取指定日期的前一天日期,所以自己也写了一个方法,如下:

      1 /*
      2 * 功    能:根据年月得到指定月份的天数
      3 * 参    数:nYear   年
      4 *           nMonth  月
      5 * 返 回 值:最大天数
      6 * 创 建 人:maojw
      7 * 创建时间:2013-08-23
      8 */
      9 function getDaysOfMonth(nYear, nMonth) {
     10     if (nYear == undefined || nYear == "" || nMonth == undefined || nMonth == "") {
     11         return 0;
     12     }
     13     var nDayCount;
     14 
     15     switch (nMonth) {
     16         case 1:
     17         case 3:
     18         case 5:
     19         case 7:
     20         case 8:
     21         case 10:
     22         case 12:
     23             nDayCount = 31;
     24             break;
     25         case 4:
     26         case 6:
     27         case 9:
     28         case 11:
     29             nDayCount = 30;
     30             break;
     31         case 2:
     32             if (((nYear % 4 == 0) && !(nYear % 100 == 0))
     33                || (nYear % 400 == 0))
     34                 nDayCount = 29;
     35             else
     36                 nDayCount = 28;
     37             break;
     38     }
     39 
     40     return nDayCount;
     41 }
     42 
     43 /*
     44  * 功    能:判断输入的字符串是否为正确的日期格式
     45  * 参    数:sDate-日期         
     46  * 返 回 值:true - 正确,否则 false
     47  * 创 建 人:maojw
     48  * 创建时间:2013-08-23
     49  */
     50 function isDateLegal(sDate) {
     51 
     52     if (sDate == undefined || sDate == "") {
     53         return false;
     54     }
     55     
     56     var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
     57     var r = sDate.match(reg);
     58     if (r == null) {
     59         return false;
     60     }
     61 
     62     var aDate = sDate.split("-");
     63 
     64     var nYear, nMonth, nDay;
     65     nYear = parseInt(aDate[0]);
     66     nMonth = parseInt(aDate[1]);
     67     nDay = parseInt(aDate[2]);
     68 
     69     if (nYear < 1900 || nYear > 2099) {
     70         return false;
     71     }
     72     if (nMonth < 1 || nMonth > 12) {
     73         return false;
     74     }
     75 
     76     var nDaysOfMonth = getDaysOfMonth(nYear, nMonth);
     77     if (nDay < 1 || nDay > nDaysOfMonth) {
     78         return false;
     79     }
     80 
     81     return true;
     82 }
     83 
     84 /*
     85  * 功    能:获取指定日期的前一天日期
     86  * 参    数:    
     87  * 返 回 值:  
     88  * 创 建 人:毛军伟
     89  * 创建时间:2013-08-23 
     90  */
     91 function getYestoday(sDate, sErrorMessage) {
     92 
     93     if (sErrorMessage == undefined || sErrorMessage == "") {
     94         sErrorMessage = "";
     95     }
     96     
     97     if (sDate == undefined || sDate == "") {
     98         return sErrorMessage;
     99     }
    100 
    101     if (!isDateLegal(sDate)) {
    102         return sErrorMessage;
    103     }
    104 
    105     var aDate = sDate.split("-");
    106 
    107     var nYear, nMonth, nDay;
    108     nYear = parseInt(aDate[0]);
    109     nMonth = parseInt(aDate[1]);
    110     nDay = parseInt(aDate[2]);
    111 
    112     //初始化月份(第一个0,占位作用,让下标和月份对应)
    113     var aMonth = new Array([0], [31], [28], [31], [30], [31], [30], [31], [31], [30], [31], [30], [31]);
    114 
    115     ///判断是否是闰年
    116     if (nYear % 4 == 0 && nYear % 100 != 0) {
    117         aMonth[2] = 29;
    118     }
    119     ///判断日期是否是第一天
    120     if (nDay - 1 == 0) {
    121         ///判断月份是否是一月
    122         if (nMonth - 1 == 0) {
    123             nYear -= 1;
    124             nMonth = 12;
    125         } else {
    126             nMonth -= 1;
    127         }
    128         nDay = aMonth[nMonth];
    129     } else {
    130         nDay -= 1;
    131     }
    132     
    133     ///月份小于10,前面加0
    134     if (nMonth < 10) {
    135         nMonth = "0" + nMonth;
    136     }
    137     ///日期小于10,前面加0
    138     if (nDay < 10) {
    139         nDay = "0" + nDay;
    140     }
    141     
    142     return nYear + "-" + nMonth + "-" + nDay;
    143 }
    View Code
  • 相关阅读:
    HDU1005 Number Sequence 题解 矩阵快速幂
    HDU1003 Max Sum 题解 动态规划 最大字段和扩展
    HDU1002 A + B Problem II 题解 高精度加法
    python练习题之访问限制
    python练习之析构函数
    python练习题之 猫2
    python 练习题之 猫
    练习题之交换牌
    mongodb 安装教程
    pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [Errno 111] Connection refused
  • 原文地址:https://www.cnblogs.com/mjw1124/p/3279153.html
Copyright © 2011-2022 走看看