日常生活

年龄计算器 — 按出生日期算准确年龄

按选定日期计算周岁及年、月、日年龄。月份从最近一次生日累计,目标月份较短时取月末。2月29日生日在平年按3月1日处理;生日当天倒计时为0天。

公式与来源更新于 · 数据来源 · 1查看算法、常量和默认输入(JSON)

输入数值

年龄(年 / 月 / 日) 36 年 9 个月 30 天
计算结果

计算结果

计算结果出生日期: 1990-01-01 / 计算日期: 2026-10-31 / 下次生日: 2027-01-01出生日期1990-01-01计算日期2026-10-31下次生日2027-01-01

关于此计算器

按选定日期计算周岁及年、月、日年龄。月份从最近一次生日累计,目标月份较短时取月末。2月29日生日在平年按3月1日处理;生日当天倒计时为0天。

按本站实现于构建时重算 · 核对于 2026-10-22

2 月 29 日出生的人,生日往后挪到 3 月 1 日,而不是往前退回 2 月 28 日

年龄其实是三个答案挤在一个名字下:整年数、年/月/天拆解、以及一个原始的天数。它们只在闰日和月末分岔——而人们核对时,恰恰就在这些地方。

0100002000030000出生今天80 岁
这条轴量的是活过的天数,不是过了几个生日。名义上八十年的一段人生,已经用掉四成六;剩下的那截,正是所有退休规划默默假设「还完整可用」的部分。

结果怎么变

出生年份 → · 已活天数
1980199020002010
已活天数17,09613,4439,7916,138

十年出生差大约对应 3,650 天,但区间里落进闰年就不止。这几列之间的差不是整数,而这正是「以天计的年龄」必须一格一格数、不能估的原因。

闰日与周年

一个日历上毫无麻烦的生日

整年数
36
年 / 月 / 天
36 / 9 / 21
总天数
13,443
下一个生日
2027-01-01
距它还有
71

三种量法描述的是同一段时间,结果彼此吻合。这张卡片是对照组:后面看着奇怪的地方,都来自日历,不来自算术。

闰日出生,从十月看过去

整年数
26
年 / 月 / 天
26 / 7 / 21
下一个生日
2027-03-01
距它还有
130

下一个周年落在 3 月 1 日,因为接下来这一年没有 2 月 29 日。改算 2 月 28 日,答案就整整差一天——所以这个日期是印出来的,不留给读者去推。

那个生日的前一天

整年数
25
年 / 月 / 天
25 / 11 / 27
下一个生日
2026-03-01
距它还有
1

把两种约定分开的正是这个输入。在这里生日还差一天;换成一个把 2 月 28 日当周年的页面,同一天它会报 0,而且年数已经提前跳了一格。

参考日期正好是生日当天

整年数
36
年 / 月 / 天
36 / 0 / 0
距下一个生日
0

剩下 0 天,不是一整年。这个字段量的是「离下一个周年还有多远」,而今天就是零距离——该读作「还有多远」,不是「下次是哪天」。

参考日期等于出生日期

整年数
0
年 / 月 / 天
0 / 0 / 0
总天数
0
距下一个生日
0

每个字段都是 0,下一个生日就是今天。这是唯一一个年龄和倒计时收敛到同一个值、而又完全不算出错的输入。

这些输入没有年龄

  • 你输入的
    birthdate
    2030-01-01
    asOf
    2026-10-22
    它给出的 inputError

    出生日期在未来

    不会悄悄给出负数年龄。这里返回一个数字很容易,但那样就等于把「年份打错」这个最常见的键入错误藏起来。

  • 你输入的
    birthdate
    2026-02-30
    asOf
    2026-10-22
    它给出的 inputError

    一个不存在的日期

    这串字符长得像日期,但仍然被拒绝,因为 2 月没有 30 日。把它顺延到 3 月,等于替一个谁也不曾拥有的生日算年龄。

  • 你输入的
    birthdate
    1990-01-01
    asOf
    它给出的 inputError

    参考日期留空

    清空这个字段时,没有「默认今天」这回事。拿当前日期顶上,会让结果取决于你哪天打开页面——正是本页刻意回避的那种隐藏输入。

每个数字各自怎么定义

2 月 29 日在平年里没有周年
在没有 2 月 29 日的年份,周年被放在 3 月 1 日。2 月 28 日是常见做法,也不算没道理,但它把生日往前挪,于是两种约定每年会整整错开一天。
整年数统计的是「已完成的周年」
年份字段在周年那天进位,不在 1 月 1 日进位。今年生日还没到的人,用这个字段算出来会比「今年减出生年」的粗算法小一岁。
年 / 月 / 天是从上一个周年减出来的
它先报从上次生日起的整年,再报月,再报天。所以月和日两个字段看起来可能偏大——它们的起点是周年,不是日历年初。
距下一个生日的天数可以是 0
在周年当天,这个字段读 0 而不是一整年;它也永远不会是负数,因为下一个周年总在前方,或者就是今天。

竞品写明的规则

  • calculator.net核对于 2026-10-22

    对方算法
    明确写出了月末规则——2 月 28 日到 3 月 28 日算一个月——但没有说明闰日怎么处理。
    本站算法
    把闰日生日放到 3 月 1 日,并把算出来的下一个生日日期一并打印出来,让规则能从输出上被验证。

    他们为什么这样设计它的结果区把「下一个生日」放在最前面,因为访问这个页面的人多半是在打量自己,而不是在排期。总天数有,但排在次要位置——用来好奇可以,用来做计划不够。

    在闰日生日的前一天,两种做法会差整整一天。一天的差距足以改变一个通知期、一个签证窗口或一条资格截止线,所以这条规则必须看得见,不能靠默认。

输入 2000-02-29、参考日期填 2026-02-28:下一个生日显示 3 月 1 日,还剩一天。把参考日期改成 2026-03-01,剩余天数掉到 0,同时年数加一。

用相同的起止日期,与日期计算器逐日核对过天数 · impl 1f3c8a44

方法与假设

年龄 = 参照日期 − 出生日期(先减整年,再减整月,最后减天数) 按选定日期计算周岁及年、月、日年龄。月份从最近一次生日累计,目标月份较短时取月末。2月29日生日在平年按3月1日处理;生日当天倒计时为0天。

数据来源

免责声明

本计算器提供通用估算。尺码、价格、库存与标准因品牌、商家与国家而异,请把结果当作起点,并与卖家或主管部门公布的数据核对。

维护方: CalcDelta 公式与来源更新于 ·

本站实现依据

此记录说明本页实际使用的实现,并非独立验证。外部引用仅支持明确注明的公式或定义;估算和自定义规则仍有其自身假设。

查看算法、常量和默认输入(JSON)

公式与变量

年龄 = 参照日期 − 出生日期(先减整年,再减整月,最后减天数)

D_ref
计算日期
D_birth
出生日期

按选定日期计算周岁及年、月、日年龄。月份从最近一次生日累计,目标月份较短时取月末。2月29日生日在平年按3月1日处理;生日当天倒计时为0天。

嵌入此计算器

复制 iframe 代码即可把本计算器放到你的网站上,无需注册。代码会同步当前输入。

常见问题

如何根据出生日期计算年、月、日年龄?

按选定日期计算周岁及年、月、日年龄。月份从最近一次生日累计,目标月份较短时取月末。2月29日生日在平年按3月1日处理;生日当天倒计时为0天。

年龄计算器 — 按出生日期算准确年龄需要哪些输入,范围是多少?

请使用各栏标注的单位。这些是表单限制,不是推荐设置。 年龄 = 参照日期 − 出生日期(先减整年,再减整月,最后减天数) 按选定日期计算周岁及年、月、日年龄。月份从最近一次生日累计,目标月份较短时取月末。2月29日生日在平年按3月1日处理;生日当天倒计时为0天。

出生日期 = 1990-01-01; 计算日期 = 2026-10-12的完整计算示例是什么?

输入: 出生日期 = 1990-01-01; 计算日期 = 2026-10-12. 计算: 年龄 = 参照日期 − 出生日期(先减整年,再减整月,最后减天数). 结果: 年龄(年 / 月 / 日) = 36 / 9 / 11; 年龄 = 36 岁; 距离下次生日 = 81 天; 累计天数 = 13,433 天; 下次生日 = 2027-01-01. 基准日期: 2026-10-12 (UTC).