【发布时间】:2012-07-22 07:52:29
【问题描述】:
闰年的确切定义是什么? AFAIK“能被 4 整除的年份是闰年。但是对于世纪年,能被 400 整除的年份是闰年。”
但该定义使 100、200、300、400.... 达到 1700 年不是闰年!但是在公历里都是闰年,check this out。
你也可以尝试在Linux中“拨打1700”来验证。
所以闰年的正确算法是:
if ( (year % 4 == 0) && ( year <= 1700 || year % 100 != 0 || year % 400 == 0 ))
printf("%d is a leap year.\n", year);
else
printf("%d is not a leap year.\n", year);
但这是公历特有的吗?即使是这样,为什么没有提到here?
问候,
PS:Gregorian callender 的历史似乎很有趣,请查看September month of 1752。
【问题讨论】: