为什么用 (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;
分享到: 更多
版权申明:

本站保留所有原创文章的版权,本站地址:奔跑的博客[http://www.elecbench.com]

原创文章转载时请注明出处,并添加文章所在页面的链接:http://www.elecbench.com/%e4%b8%ba%e4%bb%80%e4%b9%88%e7%94%a8-year-4-0-%e5%b0%b1%e5%8f%af%e4%bb%a5%e5%88%a4%e6%96%ad%e6%98%af%e5%90%a6%e6%98%af%e9%97%b0%e5%b9%b4/

本站所有 2010年3月4日 以后发表、未标明为“转载”的文章均是本站原创。

发表评论


(设置自己的个性头像)

*

申请属于你的免费顶级域名