首先,讲下“四年一闰”
地球绕太阳运行周期为365天5小时48分46秒(合365.24219天)即一回归年(tropical year)。
为了方便,平年按365天计算,比回归年短5小时48分46秒(约0.2422 日),这样每四年就少算5小时48分46秒×4=23小时15分4秒,接近一天。因此在第四年的二月里增加一天,这一年叫做闰年(366天),像1988年、1992年、……都是闰年,每四年多的一天一般放在公元年份数能被4整除的那一年,这就是“四年一闰”的道理。
其次,“百年不闰,四百年又闰”
一天实际是24小时,24小时-23小时15分4秒=44分56秒,这样每四年又多算了44分56秒(平均每年就要多算出0.0078天)。每400年就多算了:44分56秒×100=3天2小时53分20秒(400年就要多算出3.12天),所以,每400年又要去掉三个闰年(现行公历中每400年有97个闰年)。因此,规定“百年不闰,四百年又闰”也就是公元年份数是整百数时,虽然能被4整除,但不能被400整除,就不算作闰年。如1900年就不是闰年,而1600年、2000年是闰年。
year % 4 == 0 && year % 100 != 0 || year % 400 == 0