javascript日期序列号

时间:2016-04-02 04:47:56

标签: javascript numbers generator

注意:我无法使用日期功能

目标:将日期从1900年1月1日开始转换为2199年12月31日,序列号从1到109573不等。如果日期无效,则返回0。

示例:

  1. dateSerialNumber(1,1,10000)返回1
  2. dateSerialNumber(21,32012)返回40988
  3. dateSerialNumber(31,12,2199)返回109573
  4. dateSerialNumber(31,12,1899)返回0
  5. dateSerialNumber(31,13,2000)返回0
  6. dateSerialNumber(29,2,1991)返回0
  7. 更多示例: Examples of serial number by year

    我还应该使用我已编码的函数:

    1. dateValid(intDay,intMonth,intYear)
    2. numberDaysInYear(intYear)
    3. numberDaysInMonth(intMonth,intYear)
    4. 1)

      function dateValid(intDay, intMonth, intYear) {
          if ((intYear >= 1900 && intYear <= 2199) && (intMonth >= 1 && intMonth <= 12)
              && (intDay >= 1 && intDay <= numberDaysInMonth(intMonth, intYear))) {
            return true;
          }else return false;
      
      }

      2)

      function numberDaysInYear(intYear) {
         if(bissextile(intYear)) return '366'
         else return '365'
      }

      3)

      function numberDaysInMonth(intMonth, intYear) {
         return new Date(intYear, intMonth, 0).getDate();
      }

1 个答案:

答案 0 :(得分:0)

if(!dateValid(intDay, intMonth, intYear))
  return 0

var serialNumber = 0

for (var i = 1900; i < intYear; i++)
  serialNumber += numberDaysInYear(i)

for (var i = 1; i < intMonth; i++)
  serialNumber += numberDaysInMonth(i, intYear)

return serialNumber + intDay