日期时间 本地计算 开箱即用 内置示例 不留痕迹

闰年计算器(公历置闰规则)

输入年份即可判断是否闰年,并给出「能否被 4 / 100 / 400 整除」的判定过程、2 月天数、全年天数与前后相邻闰年;也可统计一段年份区间内的全部闰年与占比。

判断闰年看似「除以 4」就行,实际规则是三层:能被 4 整除、被 100 整除的要再被 400 整除——所以 2000 年是闰年,1900 年不是。本工具输入年份给出判定过程(三个整除检查逐项展示)、2 月天数、全年天数与前后相邻闰年,也能统计一段年份区间内的全部闰年。

适用范围提醒:这是公历(格里高利历)的置闰规则,适用于 1582 年 10 月 15 日之后;此前的儒略历每 4 年一闰,1900 年在儒略历里就是闰年。做历史日期换算时先确认用的是哪套历法,别把规则套错年代。

使用步骤

  1. 输入年份,看判定结果与三步整除检查过程。
  2. 看 2 月天数(28/29)与全年天数(365/366)。
  3. 看前后相邻闰年,排班表、周年纪念日常用。
  4. 统计区间闰年时填起止年份,看列表与占比。

计算原理与示例

闰年的判定规则

公历(格里高利历)的置闰规则可以概括为三句话:能被 4 整除的年份是闰年候选;但能被 100 整除的整百年份不算闰年;若整百年份还能被 400 整除,则又算闰年。合并成一句话就是「能被 4 整除且不能被 100 整除,或者能被 400 整除」。于是 2024 年是闰年,1900 年被 100 整除却不能整除 400,是平年,而 2000 年能被 400 整除,是闰年。

为什么还要有 100 年与 400 年两条附加规则

地球绕太阳一周约 365.2422 天,比 365 天多出约 0.2422 天(约 5 小时 49 分)。只按「四年一闰」补偿,平均每年为 365.25 天,仍比回归年略长,400 年会累积多出约 3 天。因此每 100 年取消一次闰年,再每 400 年恢复一次:400 年里共 97 个闰年,平均每年 365.2425 天,与回归年只差约 26 秒。这就是「四年一闰、百年不闰、四百年再闰」。

闰年会影响哪些计算

闰年全年 366 天、2 月 29 天;平年 365 天、2 月 28 天。凡按自然日累计的计算都会受影响:按天计息的利息与违约金、按自然日排的工期、以及 ISO 周数(平年 52 周 + 1 天,闰年 52 周 + 2 天,多出的天数落在周四及以后时该年就有第 53 周)。2 月 29 日出生的人,在非闰年通常按 2 月 28 日或 3 月 1 日过生日。

代码示例

JavaScript 三层置闰规则

function isLeap(year) {
  return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
}

isLeap(2000);   // true(被 400 整除)
isLeap(1900);   // false(被 100 整除但不被 400 整除)
isLeap(2024);   // true(被 4 整除且不被 100 整除)

Python 标准库一行判断

import calendar

calendar.isleap(2024)   # True

# 区间统计:
years = [y for y in range(2000, 2101) if calendar.isleap(y)]
len(years)   # 25

常见问题

1900 年为什么不是闰年?

1900 能被 4 整除,看起来该是闰年,但它同时能被 100 整除。按公历规则,整百年份必须再能被 400 整除才算闰年,而 1900 ÷ 400 = 4.75 不能整除,所以它是平年,全年 365 天、2 月 28 天。相邻的 2000 年能被 400 整除,因此是闰年。

2100 年是闰年吗?

不是。2100 能被 4 和 100 整除,但不能被 400 整除,属于「百年不闰」。它是 2000 年之后最近的一个整百平年,常被误以为有 2 月 29 日——2100 年的 2 月只有 28 天。

闰年一共有多少天?

366 天,比平年多 1 天,多出的这一天加在 2 月末,也就是 2 月 29 日;平年是 365 天、2 月 28 天。判定后结果区的「2 月天数」与「全年天数」两项统计会直接给出这两个数字。

闰年是每 4 年一次吗?

大体上是,但不完全。绝大多数相邻闰年间隔 4 年,只是在整百年前后会出现 8 年间隔:1896 年是闰年,下一个闰年却是 1904 年,因为 1900 年是平年。400 年的完整周期里共有 97 个闰年,而不是 100 个。

两个闰年之间最多隔几年?

最多 8 年。能被 4 整除却落在整百年的年份(如 1900、2100)会被跳过,于是 1896 → 1904、2096 → 2104 之间都是 8 年,其余情况都是 4 年。判定结果里的「下一个闰年」会直接显示是哪一个年份。

农历的闰月和公历闰年是一回事吗?

不是。公历闰年只在 2 月末补 1 天,目的是让日历年追上回归年;农历闰月则是补一整个月(如闰六月),因为 12 个朔望月只有约 354 天,比回归年短约 11 天,所以大约每 2~3 年就要加一个闰月。农历闰月请用农历转换类工具查看。

闰年只影响 2 月吗?

公历闰年确实只在 2 月末多出一天,其它月份天数不变:1、3、5、7、8、10、12 月各 31 天,4、6、9、11 月各 30 天。但它会改变「年内第几天」的累计值——闰年里 3 月 1 日是第 61 天,平年则是第 60 天,按天数折算的公式会随之偏移。

按天数算利息或工期时要注意闰年吗?

要。凡按自然日累计的计算(利息、违约金、工期、假期天数),跨过 2 月 29 日就会多出一天;而按「年利率 ÷ 365」口径的产品,在闰年用 365 还是 366 作分母会带来细微差异。可以先用本工具确认目标年份是否闰年,再决定天数与分母。

延伸阅读

来自本站原创文章,讲清这个工具背后的算法与口径。