闰年判断
年份
查询范围(公历年)
· 普通年(不能被 100 整除):能被 4 整除 → 闰年(如 2024, 2028)
· 世纪年(能被 100 整除):必须能被 400 整除 → 闰年(如 2000, 2400)
· 闰年 2 月有 29 天,全年 366 天
· 平年 2 月有 28 天,全年 365 天
任意年份/闰年表/二月天数
年份
查询范围(公历年)
高亮的为闰年
了解工具定位 · 使用场景 · 对比优势
输入任意年份,立即判断是否为闰年,并显示该年二月天数。同时提供闰年表,可快速查询连续年份的闰年分布。适合日历排版、日期计算、教学演示等场景。所有计算在浏览器内完成,年份数据不上传服务器。
2月29日出生的用户每年都会遇到生日日期问题:今年过2月28日还是3月1日?本工具输入出生年份即可判断是否为闰年,并直接显示该年二月天数及对应生日当年的实际日期,避免因历法混淆错过庆祝或证件日期填写错误。
HR或法务人员在起草劳动合同、租赁合同时,若涉及2月29日的条款(如试用期截止日、租金支付日),需确认该年是否为闰年。本工具快速校验年份,自动提示二月天数,防止因日期不存在导致合同效力争议或履行障碍。
计算机专业学生完成闰年判断算法作业后,需要大量测试用例验证逻辑是否正确。本工具提供从公元1年到9999年的闰年表,学生可随机抽取年份对比自己的程序输出,快速定位边界条件(如世纪年400整除规则)的bug。
财务人员在计算年化收益率、日利率或按日计息的理财产品时,闰年多出的2月29日会影响实际计息天数(366天 vs 365天)。本工具输入年份直接告知是否为闰年,帮助精准计算日利率系数,避免因天数误差导致收益偏差。
旅行规划者制定跨年长途行程(如2月出发、3月返回)时,需确认当年二月是28天还是29天,以准确计算酒店预订晚数和签证停留期。本工具输入年份秒出结果,配合二月天数显示,避免因多算或少算一天导致行程冲突或超期滞留。
| 维度 | 本工具 | 在线万年历 | 传统方法 |
|---|---|---|---|
| 数据隐私 | 纯浏览器,零上传 | 上传到服务器 | 依赖工作人员 |
| 处理速度 | 1 秒内 | 1-3 秒(含加载) | 数分钟至数小时 |
| 离线可用 | 支持 | 需要联网 | 支持 |
| 查询范围 | 任意年份(-9999 至 9999) | 通常限定在公元 1900-2100 | 依赖手头资料年份 |
| 输出内容 | 闰年判定 + 二月天数 + 全年日历表 | 仅显示单月日历 | 需自行推算 |
| 收费 | 免费 | 免费(含广告) | 免费或付费咨询 |
上手步骤 · 输入输出 · 避坑提示
| 输入 | 输出 | 说明 |
|---|---|---|
| 2024 | 闰年 | 二月有 29 天 | 典型常规场景:当前最近闰年 |
| 2025 | 平年 | 二月有 28 天 | 典型常规场景:当前最近平年 |
| 1900 | 平年 | 二月有 28 天 | 易错 case:能被 100 整除但不能被 400 整除 |
| 2000 | 闰年 | 二月有 29 天 | 边界 case:能被 400 整除的世纪年 |
| 0 | 平年 | 二月有 28 天 | 边界 case:公元 1 年前一年,公历无 0 年 |
| -44 | 闰年 | 二月有 29 天 | 边界 case:公元前年份,格里历反向推算 |
| 10000 | 平年 | 二月有 28 天 | 边界 case:超出常用年份范围,仍按规则计算 |
| 2024.5 | 输入无效,请输入整数年份 | 易错 case:用户输入了小数年份 |
输入“润年”或“润月年”输入“闰年”或“闰月年”“闰”是“余数、额外”之意,与“润”无关。公历闰年加一天(2月29日),农历闰年加一个月(闰月)。工具按标准名称“闰年”检索。
输入“今年”或“去年”输入具体的数字年份,如“2024”工具只接受纯数字年份。相对年份(今年、去年)是自然语言概念,工具无法解析,必须手动输入具体数字。
输入“2024年”输入“2024”工具输入框预期是纯数字。带“年”字会导致解析失败或只识别数字部分,产生歧义。直接输入数字最可靠。
输入“2023 BC”或“-2023年”输入“-2023”公历纪年用负号表示公元前。工具只识别数字前的负号,不接受“BC”“B.C.”等英文缩写或中文“前”。负号必须紧贴数字,无空格。
认为公元1年之前是公元0年,输入“0”输入“1”代表公元1年,输入“-1”代表公元前1年公历没有公元0年,从公元前1年直接跳到公元1年。输入“0”会被工具视为非法年份或公元1年,导致结果错误。
认为1900能被4整除就是闰年1900年不是闰年,因为能被100整除但不能被400整除公历闰年规则:能被4整除但不能被100整除,或者能被400整除。1900年满足第一个条件但不满足第二个,所以是平年。这是最常见的误区。
认为2000能被100整除就是平年2000年是闰年,因为能被400整除世纪年(能被100整除)必须同时能被400整除才是闰年。2000年满足条件,是闰年。这个例外常被忽略。
认为2023年有闰二月,所以2023年是公历闰年2023年是农历闰二月年,但公历是平年(2月只有28天)公历闰年看2月29日,农历闰年看是否有闰月。两者规则不同,不能混用。工具默认按公历判断。
输入“1000000”输入“2024”或“-4000”等合理范围内的年份公历闰年规则(格里高利历)只适用于1582年之后。对于更早年份或超大年份,该规则不适用,工具可能返回错误或无效结果。
公式推导 · 流程图解 · 依据出处
year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)
year — 待判断的年份(整数)判断 2024 年是否为闰年:2024 % 4 = 0(整除),2024 % 100 = 24(不整除),满足条件,结果为 true(是闰年)。判断 1900 年:1900 % 4 = 0,1900 % 100 = 0,1900 % 400 = 300(不整除),不满足条件,结果为 false(不是闰年)。
适用于公历(格里高利历)所有年份,包括公元前年份(需转换为天文年份)。不适用于儒略历或其他历法。来源:格里高利历规则(1582 年教皇格里高利十三世颁布)。
3 种主流语言 · 复制即用
def is_leap_year(year: int) -> bool:
"""判断闰年:格里高利历规则"""
if year % 400 == 0:
return True
if year % 100 == 0:
return False
return year % 4 == 0
# 示例
for y in [1900, 2000, 2024, 2025]:
print(f"{y}: {'闰年' if is_leap_year(y) else '平年'}")
# 输出:
# 1900: 平年
# 2000: 闰年
# 2024: 闰年
# 2025: 平年package main
import "fmt"
func isLeapYear(year int) bool {
if year%400 == 0 {
return true
}
if year%100 == 0 {
return false
}
return year%4 == 0
}
func main() {
years := []int{1900, 2000, 2024, 2025}
for _, y := range years {
result := "平年"
if isLeapYear(y) {
result = "闰年"
}
fmt.Printf("%d: %s\n", y, result)
}
}function isLeapYear(year) {
if (year % 400 === 0) return true;
if (year % 100 === 0) return false;
return year % 4 === 0;
}
// 示例
[1900, 2000, 2024, 2025].forEach(y => {
console.log(`${y}: ${isLeapYear(y) ? '闰年' : '平年'}`);
});
// 输出:
// 1900: 平年
// 2000: 闰年
// 2024: 闰年
// 2025: 平年8 个高频疑问