可能重复:
如何找到闰年?
闰年的确切定义是什么?AFAIK “能被 4 整除的年份是闰年。但对于世纪年,能被 400 整除的年份是闰年。 ”
但是这个定义使得 100、200、300、400.... 到 1700 年不是闰年!但是在公历中,它们都是闰年,看看这个。
您也可以尝试在 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);
但这是公历特有的吗?即使是这样,为什么这里没有提到呢?
问候,
PS:格里高利 callender 的历史似乎很有趣,看看1752 年 9 月。