• 测试闰年


    首先,说道闰年,我们要先知道闰年是什么,下面是闰年的定义:

      闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期时间差而设立的。补上时间差的年份为闰年。闰年包括在公历(格里历)或夏历中有闰日的年份。闰年有366天

      那么,闰年该怎么计算呢?我们看下面

    ①、普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1900年不是闰年)
    ②、世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
    ③、对于数值很大的年份,这年如果能被3200整除,并且能被172800整除则是闰年。如172800年是闰年,86400年不是闰年(因为虽然能被3200整除,但不能被172800整除)(此按一回归年365天5h48'45.5''计算)
      反应到程序中就应该是下面这样:

    public class LeapYear{
    public static boolean isLeapYear(Integeryear){
    if((year%4==0 && year%100!=0) || year%400==0){
    return true;
    }
    else
    return false;
    }
    public static void main(String[]args){
    Integer i = newInteger(400);
    boolean res = isLeapYear(i);
    System.out.println(res);
    }
    }

    但是呢,用if((year%4==0 && year%100!=0) || year%400==0这种方法可能并不利于我们测试,把他们分开更好

      public static bool isLeapYear(int year){
          bool check = new bool();
          check = false;
          if (year % 4 == 0)
              check = true;
          if (year % 100 == 0)
              check = false;
          if (year % 400 == 0)
             check = true;
         return check;
     }  
    我们根据这些来看一下测试用例:
    2000
    1999 不是
    2004
    1901 不是
    2007 不是
     
  • 相关阅读:
    hdu 1174
    计算几何模板
    又是一年博客记
    hdu 1225 Football Score
    与逆序数有关的
    hdu 2844 Coins
    hdu 1171 Big Event in HDU
    UVA Exponentiation
    UVA Summation of Four Primes
    Linux:设置alias永久生效
  • 原文地址:https://www.cnblogs.com/hillinpasadena/p/4395979.html
Copyright © 2020-2023  润新知