为什么用 (year) % 4 == 0 就可以判断是否是闰年

第一眼看到这样判断闰年觉得很奇怪,明明闰年的判断条件是:能被4整除且不能被100整除;或者能被400整除。这里为什么可以用能被4整除来判断呢?

其实这条语句成立是有条件的,只在一定范围内存在,即只在100年范围内存在,如2001年到2099年范围。很明显,这个范围内的数都不能被100整除。

虽然很多单片机系统使用这种方法判断闰年,因为工程师认为自己的产品能用10年就不错了,%>_<%

但我还是倾向于用以下代码来判断,虽然效率会稍稍第一点。

1
2
3
 if ((nyear % 4 == 0 &amp;&amp; nyear % 100 != 0 )|| (nyear % 400 == 0))
return TRUE;
return FALSE;

发表评论

邮箱地址不会被公开。 必填项已用*标注