闰年

代码:

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年。但距此年分来临尚有约二千年之遥,因此还未曾真正纳入规则或实施过。又由于地球公转速度的不稳定与众多影响因素,届时是否需要纳入此规则有待商榷。

posted @ 2018-12-19 10:56  JingWenxing  阅读(454)  评论(0编辑  收藏  举报