闰年判断

任意年份/闰年表/二月天数

413 次访问

闰年判断

年份

查询范围(公历年)

公历闰年规则
· 普通年(不能被 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天,以准确计算酒店预订晚数和签证停留期。本工具输入年份秒出结果,配合二月天数显示,避免因多算或少算一天导致行程冲突或超期滞留。

对比矩阵本工具 vs 竞品 vs 传统方法

维度本工具在线万年历传统方法
数据隐私纯浏览器,零上传上传到服务器依赖工作人员
处理速度1 秒内1-3 秒(含加载)数分钟至数小时
离线可用支持需要联网支持
查询范围任意年份(-9999 至 9999)通常限定在公元 1900-2100依赖手头资料年份
输出内容闰年判定 + 二月天数 + 全年日历表仅显示单月日历需自行推算
收费免费免费(含广告)免费或付费咨询

使用指南

上手步骤 · 输入输出 · 避坑提示

使用步骤

  1. 在输入框中填写要判断的年份(如 2000),支持四位数字格式
  2. 点击「判断」按钮,页面立即显示该年份是否为闰年
  3. 查看结果区:闰年显示「是」,平年显示「否」,并标注二月天数(28 或 29)
  4. 如需查看连续年份的闰年分布,点击「闰年表」切换至列表模式
  5. 在闰年表模式下,可滑动或输入起止年份(如 1900-2100)生成完整表格

输入输出示例8 个典型场景,覆盖常规、边界与易错

输入输出说明
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:用户输入了小数年份

常见错误对照9 个常踩的坑 · 错误 → 修复

1. 把“闰年”写成“润年”或“润月年”

错误
输入“润年”或“润月年”
修复
输入“闰年”或“闰月年”

“闰”是“余数、额外”之意,与“润”无关。公历闰年加一天(2月29日),农历闰年加一个月(闰月)。工具按标准名称“闰年”检索。

2. 输入“今年”或“去年”等相对年份

错误
输入“今年”或“去年”
修复
输入具体的数字年份,如“2024”

工具只接受纯数字年份。相对年份(今年、去年)是自然语言概念,工具无法解析,必须手动输入具体数字。

3. 输入带“年”字的年份,如“2024年”

错误
输入“2024年”
修复
输入“2024”

工具输入框预期是纯数字。带“年”字会导致解析失败或只识别数字部分,产生歧义。直接输入数字最可靠。

4. 输入公元前年份时,忘记加负号或加错位置

错误
输入“2023 BC”或“-2023年”
修复
输入“-2023”

公历纪年用负号表示公元前。工具只识别数字前的负号,不接受“BC”“B.C.”等英文缩写或中文“前”。负号必须紧贴数字,无空格。

5. 把“公元1年”当作“公元0年”

错误
认为公元1年之前是公元0年,输入“0”
修复
输入“1”代表公元1年,输入“-1”代表公元前1年

公历没有公元0年,从公元前1年直接跳到公元1年。输入“0”会被工具视为非法年份或公元1年,导致结果错误。

6. 把“1900年”当作闰年

错误
认为1900能被4整除就是闰年
修复
1900年不是闰年,因为能被100整除但不能被400整除

公历闰年规则:能被4整除但不能被100整除,或者能被400整除。1900年满足第一个条件但不满足第二个,所以是平年。这是最常见的误区。

7. 把“2000年”当作平年

错误
认为2000能被100整除就是平年
修复
2000年是闰年,因为能被400整除

世纪年(能被100整除)必须同时能被400整除才是闰年。2000年满足条件,是闰年。这个例外常被忽略。

8. 把农历闰月年当作公历闰年

错误
认为2023年有闰二月,所以2023年是公历闰年
修复
2023年是农历闰二月年,但公历是平年(2月只有28天)

公历闰年看2月29日,农历闰年看是否有闰月。两者规则不同,不能混用。工具默认按公历判断。

9. 输入超长年份(如1000000年)

错误
输入“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 年教皇格里高利十三世颁布)。

原理图

输入年份闰年规则判断显示结果判断逻辑1. 能被 400 整除 → 闰年2. 能被 100 但不能被 400 整除 → 平年3. 能被 4 整除但不能被 100 整除 → 闰年4. 其他 → 平年
用户输入 本地处理 输出结果

开发者集成

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 个高频疑问

1900 年是不是闰年?为什么这个工具说不是?
1900 年不是闰年,这是正确的。公历闰年规则是:能被 4 整除但不能被 100 整除,或者能被 400 整除。1900 年能被 4 整除,也能被 100 整除,但不能被 400 整除,所以是平年。很多人误以为每 4 年一闰,但世纪年(末尾两位为 00)需要被 400 整除才算闰年,例如 2000 年就是闰年。这个工具严格按照此规则判断,无需担心算错。
为什么输入公元 1 年之前的年份,结果就不对了?
公历(格里高利历)是从公元 1582 年开始实施的,1582 年之前的年份并没有统一的闰年规则。本工具默认按公历规则计算,对公元 1 年及之后的年份有效。如果你输入公元前年份(如 -1),由于历法规则不同(例如罗马历法),结果可能不符合现代认知。工具只处理公元后年份,公元前年份请参考历史学家的历法表。
我输入 2400 年,它说是闰年,但有的地方说 2400 年不是,到底哪个对?
2400 年是闰年,本工具结果正确。公历规则中,世纪年(如 2400)能被 400 整除就是闰年。2400 ÷ 400 = 6,整除,所以是闰年。网上有些说法混淆了“能被 400 整除”这一条,或者误用了“每 400 年去掉 3 个闰年”的简化说法(实际是去掉不能被 400 整除的世纪年)。直接用这个工具验证最可靠。
这个工具能一次性查很多年的闰年吗?比如 1900-2100 年所有闰年?
可以。本工具提供了“闰年表”功能,可以生成指定年份区间的闰年列表。输入起始年和结束年(例如 1900 和 2100),点击生成,就会列出该区间内所有闰年(1904、1908…2096),并标注每个闰年对应的二月天数(29 天)。平年则不会出现在列表中。适合需要批量查询的场合,比如排课表、做历史统计。
为什么有的年份二月有 29 天,有的只有 28 天?这个工具能直接查二月天数吗?
二月天数的多少直接取决于该年是否为闰年。闰年二月有 29 天,平年只有 28 天。本工具在查询单个年份时,结果会明确显示该年二月的天数(28 或 29)。在“闰年表”功能中,每一条闰年记录也会附带“二月:29 天”的标注。不需要额外换算,输入年份或区间即可直接看到。
这个工具会不会把我的输入发到服务器?我担心隐私。
不会。本工具完全在浏览器端运行(纯 JavaScript),你输入的任何年份数据都不会离开你的电脑。没有网络请求,没有后端服务器,关闭页面后所有数据自动清除。你可以断网后打开页面测试,工具依然能正常判断闰年并生成闰年表。无需担心隐私泄露。
我输入了年份但没反应 / 按钮点了没变化,怎么回事?
请先检查输入框中的年份格式是否正确。工具要求输入合法年份(例如 2024、1900、-1 等不支持),不支持输入“今年”、“去年”等文字。如果输入了字母、符号或空值,点击按钮不会有反应。另外,极少数旧版浏览器(如 IE)可能不支持工具所用的 JavaScript 特性,请尝试升级到 Chrome、Edge、Firefox 等现代浏览器。
这个工具判断闰年的规则和“四年一闰”的说法有什么不同?
"四年一闰"是简化的通俗说法,不完整。公历实际规则是:四年一闰,但百年不闰,四百年再闰。即:能被 4 整除的是闰年,但能被 100 整除的不是闰年,除非还能被 400 整除。例如 1900 年能被 4 整除,但被 100 整除且不被 400 整除,所以是平年(不是闰年)。本工具严格按此规则计算,比"四年一闰"的说法更精确,可以避免类似 1900 年的常见错误。
选择 打开 +新窗口 esc关闭