本文目录导读:

每逢二月,大家总会关心一个问题:今年是闰年吗?闰年意味着二月多一天,全年有366天,但很多人对闰年的判断规则模模糊糊,只记得“四年一闰”,结果遇到整百年份就出错,判断闰年有一套非常精确的逻辑,掌握了它,你不仅能当“日历通”,写代码时也不会再犯迷糊。
闰年的“祖宗规矩”
闰年是怎么来的?地球绕太阳一圈实际需要约365.2422天,而我们平年只算365天,为了补上每年多出来的约0.2422天,每四年就得多加一天,于是有了“四年一闰”的规则,但这样每400年又会多闰3天,所以需要更精确的修正——这就是后面两步要解决的问题。
判断闰年的完整三步
请记住这个由主到次的顺序:
第一步:看年份能否被4整除。 如果不能被4整除,那它一定是平年,游戏结束,比如2023年,2023÷4=505余3,平年。 如果能被4整除,先别急着说它是闰年,进入第二步。
第二步:看年份能否被100整除。 如果不能被100整除,那它一定是闰年,比如2024年,2024÷4=506,且2024÷100=20余24,所以2024年是闰年。 如果能被100整除(也就是整百年,如1900、2000),还不能下结论,进入第三步。
第三步:看年份能否被400整除。 如果整百年能被400整除,那它就是闰年,比如2000年,2000÷400=5,所以2000年是闰年。 如果整百年不能被400整除,那它就是平年,比如1900年,1900÷400=4余300,所以1900年虽然是4的倍数,却是个平年!这就是为什么1896年是闰年,而1900年不是,但1904年又成了闰年——百年关口“跳过”了一次闰年。
一句口诀记住核心
“四年一闰,百年不闰,四百年再闰。”
展开来说就是:非整百年份,能被4整除就是闰年;整百年份,必须能被400整除才是闰年。
实用速查与代码实现
为了让你彻底省心,这里有两种最常用的判断方式:
中文逻辑表达:
(年份能被4整除) (年份不能被100整除 或者 年份能被400整除):
那么是闰年
否则:
是平年
Python代码示例:
def is_leap(year):
if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0):
return True
else:
return False
JavaScript代码示例:
function isLeap(year) {
return (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);
}
常见误区提醒
- “能被4整除就是闰年” —— 大错特错,别忘了整百年还要看400。
- “1900年是闰年” —— 错,1900是整百年,不能被400整除,所以是平年。
- “2000年是平年” —— 更错,2000能被400整除,是闰年,正好印证了“四百年再闰”。
判断闰年,本质上是在校准“人为日历”与“自然天文”的误差,只要跟着“整除4 → 排除整百 → 验证整百对400”这三步走,世界上任何一个公历年份,你都能在三秒钟内给出正确答案,下次有人问你,不妨笑着告诉他:“先除以4,别急着下结论,再问一句——你是整百年吗?”

