代码:
bool isLeapYear(int year)
{
if ((year % 4 == 0 and year % 100 != 0) or (year % 400 == 0 and year % 3200 != 0))
return true;
else
return false;
}
定义:
目前使用的 格里高利历 闰年规则如下:
- 公元年分除以4不可整除,为平年。
- 公元年分除以4可整除但除以100不可整除,为闰年。
- 公元年分除以100可整除但除以400不可整除,为平年。
- 公元年分除以400可整除但除以3200不可整除[来源请求],为闰年。
每逢闰年,2月分有29日,平年的2月分为28日。
因此,1977年为平年,1980年逢4的倍数为闰年,1900年逢100的倍数但非400的倍数故为平年,2000年逢400的倍数又为闰年。
此外,如依照现有太阳年的长度与上述闰年规则,每8000年又约差一日,因此约翰·赫歇尔提议每逢4000的倍数不闰,如公元4000年。但距此年分来临尚有约二千年之遥,因此还未曾真正纳入规则或实施过。又由于地球公转速度的不稳定与众多影响因素,届时是否需要纳入此规则有待商榷。