所謂閏年,就是指 2 月有 29 天的那一年。閏年同時滿足以下條件:
- 年份能被 4 整除。
- 年份若是 100 的整數倍,須被 400 整除,否則是平年。
例如,1900 年能被 4 整除,但是因為其是 100 的整數倍,卻不能被 400 整除,所以是平年;而 2000 年就是閏年;1904 年和 2004 年、2008 年等直接能被 4 整除且不能被 100 整除,都是閏年;2014 是平年。
下面綜合本章學習的知識來編寫一個判斷閏年的案例,其主要功能如下:
- 判斷用戶輸入的年份是不是閏年。
- 根據年份和月份輸出某年某月的天數。
實現步驟分為以下幾步:
(1) 新建一個類並在該類中導入需要的 java.util.Scanner 類,同時需要創建該類的入口方法 main(),其實現代碼如下:
import java.util.Scanner; public class Test27 { public static void main(String[] args) { // 在這里編寫其他代碼 } }
(2) 在 main() 方法中編寫 Java 代碼,獲取用戶輸入的年份和月份,其實現代碼如下:
Scanner sc=new Scanner(System.in); System.out.println("請輸入年份(注: 必須大於 1990 年):"); int year=sc.nextInt(); System.out.println("請輸入月份:"); int month=sc.nextInt();
(3) 根據用戶輸入的年份,判斷該年份是閏年還是平年,其實現代碼如下:
boolean isRen; if((year%4==0&&year%100!=0)||(year%400==0)) { System.out.println(year+"閏年"); isRen=true; } else { System.out.println(year+"平年"); isRen=false; }
(4) 根據用戶輸入的月份,判斷該月的天數,其實現代碼如下:
int day=0; switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: day=31; break; case 4: case 6: case 9: case 11: day=30; break; default: if(isRen) { day=29; } else { day=28; } break; } System.out.println(year+"年"+month+"月共有"+day+"天");
(5) 該程序代碼執行結果如下所示:
請輸入年份(注: 必須大於 1990 年): 2014 請輸入月份: 2 2014平年 2014年2月共有28天 請輸入年份(注: 必須大於 1990 年): 2000 請輸入月份: 2 2000閏年 2000年2月共有29天