CalcDate.isLeapYear()CalcDateクラスのメソッドisLeapYear()です。ある年が閏年かどうか調べます。
シグニチャは
boolean isLeapYear(int year)
になります。
閏年の判定にはちゃんと規則があって
というのが原則です。したがって1816年、1996年、2040年などは閏年です。ただし例外があって
ということで、1900年、1700年などは閏年ではありません。しかし、何と例外の例外もあって
したがって、1600年、2000年は閏年です。
上の三つの条件を並べると
となります。これをまともに判定しようと思うとif文の嵐になって大変ですが、よ〜く考えると閏年の判定条件は
にまとめられることが解ります。したがって、これを論理式で表して
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
と返してやれば、ある年が閏年かどうか解ります。