網頁

2020/12/24

Java 判斷潤年 leap year

Java判斷該年是否為潤年(leap year)的方式。

潤年就是一年有366天,比一般365天的年(平年)多1天。平年的2月有28日,而潤年多出來的一天是在2月29日。

滿足潤年的條件為:

  • 公元年為4的倍數且非100的倍數
  • 公元年為400的倍數

Java 計算公元年是否為潤年的程式碼如下。

boolean isLeapYear(int year) {
    return ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));
}

參考於Quartz CronExpression.isLeapYear(int year)


或用java.time.YearisLeap(long year)。原始碼如下,判斷是否為4的倍數使用了bitwise &(AND)運算子n & 3檢查二進位後兩碼是否為00,因為4的倍數二進位後兩碼為00

public static boolean isLeap(long year) {
    return ((year & 3) == 0) && ((year % 100) != 0 || (year % 400) == 0);
}


沒有留言:

張貼留言