作业帮 > 综合 > 作业

C 语言 if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/26 17:55:37
C 语言 if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
为什么这样呢/ 只需要year%4==0 就可以判断是否为闰年了啊?
地球绕太阳运行周期为回归年,即365天5小时48分46秒(合365.24219天).公历的平年只有365日,比回归年短约0.2422 日.经过400年,公历平年比回归年一共少了(0.2422 *400=96.88天),约等于97天,所以公历中每400年有97个闰年.但如果按照每四年一个闰年计算,平均每年就要多算出0.0078天,这样经过四百年就会多算出大约3天来,因此,每四百年中要减少三个闰年.所以规定,公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的,虽然是100的倍数,也是平年,这就是通常所说的:四年一闰,百年不闰,四百年再闰.例如,2000年是闰年,1900年则是平年
再问: 我的意思是为什么要写那么多啊 只需要年份能够整除4就可以了啊
再答: 刚才偷懒抄了百度百科里的解释,看样子还是不够通俗啊。再解释一遍。 地球绕太阳一圈,实际上花365.24219天,但公历一年只有365天,所以一年就少算了0.24219天。400年下来,少的日子就很可观了,有(0.24219*400=96.876天),约97天,这些得补上。一个简单的法子就是每4年规定为闰年,闰年要补一天,这样子400年就补了100天,但多补了3天。怎么办?简单,随便废掉3个闰年就行了。为了方便,就找上了整百的年份,每400年有4个整百年份,除了能被400整除的那年定为闰年,其他3个整百年都是平年,这纯粹是人为规定。 year%4==0&&year%100!=0 就是能被4整除的非整百年,是闰年。 year%400==0 就是能被400整除的整百年,是闰年。 year%100==0 && year%400!=0 就是另三个整百年,不是闰年。 所以同学你说的year%4==0不是判断闰年的完整规则,记得每400年要干掉3个特例!正确的规则是上述第一种情况和第二种情况的总和。