每 400 年包含 97 個閏年。
import java.util.Scanner;
public class LeapYearV1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("請輸入年份:");
int year = sc.nextInt();
if (year % 400 == 0) {
System.out.println(year + " 年是閏年");
} else if (year % 100 == 0) {
System.out.println(year + " 年不是閏年");
} else if (year % 4 == 0) {
System.out.println(year + " 年是閏年");
} else {
System.out.println(year + " 年不是閏年");
}
}
}
public class LeapYearV2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("請輸入年份:");
int year = sc.nextInt();
// 能被 4 整除且不能被 100 整除,或者能被 400 整除
boolean isLeap = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
System.out.println(year + " 年" + (isLeap ? "是" : "不是") + "閏年");
}
}
| 年份 | %400 | %100 | %4 | V1結果 | V2結果 |
|---|---|---|---|---|---|
| 2000 | 0 | 0 | 0 | 閏年 | 閏年 |
| 1900 | 300 | 0 | 0 | 平年 | 平年 |
| 2004 | 4 | 4 | 0 | 閏年 | 閏年 |
| 2001 | 1 | 1 | 1 | 平年 | 平年 |
import java.time.Year;
public class LeapYearModern {
public static void main(String[] args) {
int year = 2024;
boolean isLeap = Year.of(year).isLeap();
System.out.println(year + (isLeap ? " 是" : " 不是") + "閏年");
}
}
java.time.Year.isLeap() 內部實現同邏輯表達式,推薦生產環境直接使用標準庫。