import java.time.Year;
public class LeapYearCheck {
public static void main(String[] args) {
int year = 2024;
boolean isLeap = Year.isLeap(year); // 靜態方法,直接呼叫
System.out.println(year + (isLeap ? " 是" : " 不是") + "閏年");
}
}
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
// 閏年 2 月有 29 天
boolean isLeap = cal.getActualMaximum(Calendar.DAY_OF_YEAR) > 365;
java.time.Year:不可變、執行緒安全、領域驅動設計、無副作用。Calendar:可變、非執行緒安全、API 繁瑣、已被棄用趨勢。public static boolean isLeap(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
生產代碼優先使用標準庫,避免邊界錯誤 (如 1900, 2000)。