首先,说道闰年,我们要先知道闰年是什么,下面是闰年的定义:
闰年(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 | 不是 |