年龄计算器
生活根据出生日期计算精确的年、月、日年龄,以及累计天数、出生时是星期几和距下次生日的天数。所有日期运算使用 UTC,结果在任何时区都一致。
本页内容
什么是年龄计算器?#
它做的不仅仅是把出生年份减一下。给定出生日期和一个参照日期,它能算出你嘴上会说的那个精确年龄——“26 岁 7 个月 6 天”——外加填表、闲聊时常被问到的那些总数:你已经活了多少天、多少周、多少个月、出生那天是星期几,以及离下一个生日还有多久。
难点在于要算得对,因为日历本身就很别扭:每月天数不同,闰年每四年多插一天(还有世纪的例外),而 2 月 29 日出生的人在四年里有三年根本没有这个日子。本工具用日历分解来处理这一切,不是简单地拿 年 × 365 去乘——所以天数是对的,2 月 29 日出生的人也能得到合理的”下个生日”答案。
怎么使用#
- 填 出生日期。这是个日期选择框,可以直接敲
2000-01-01,也可以从弹层里挑。 - 填 参照日期——也就是”算到哪天为止”。默认是今天;改过之后想还原,点 今天 按钮即可。
- 结果卡片会自动填好:
- 顶部大字显示 岁 / 月 / 天 分解。
- 详情列表有活过的 总天数、总周数、总月数。
- 你出生那天是星期几。
- 下一个生日的日期,以及距离它还有多少天(如果今天就是生日,会提示”今天”)。
- 点 清除 重置两个日期。
主要特性#
- 精确的日历分解,不是近似——年/月/天是能恰好加满所经过时间的最大值,跟人报年龄的方式一致。
- 总数准确。 总天数会数清范围内的每一个闰日;总周数是它除以 7 取整;总月数是
年 × 12 + 月。 - 认得闰日。 2 月 29 日出生的人,在非闰年里生日按 2 月 28 日处理,所以”下个生日倒计时”依然有数;到了真正的闰年,“今天是生日”会在 29 日那天触发。
- 不受时区影响。 所有日期运算走 UTC,所以身处不同时区的两个人,看同一个出生日期会得到同一个年龄。
- 100% 本地。 你的出生日期不离开浏览器。
实例演示#
出生日期 2000-01-01,参照日期 2026-08-07。结果卡片显示:
| 字段 | 数值 |
|---|---|
| 年龄(大字) | 26 岁 7 个月 6 天 |
| 已活总天数 | 9,715 |
| 总周数 | 1,387 |
| 总月数 | 319 |
| 出生那天 | 星期六 |
| 下一个生日 | 2027-01-01(还有 147 天) |
有几点值得注意。总天数(9,715)不是 26 × 365——那只有 9,490。多出来的 225 天,一部分来自区间里的七个闰日(2000、2004、2008、2012、2016、2020、2024),另一部分是过了 2026 年生日之后又活的 7 个月零 6 天。这正说明为什么简单相乘是错的、日历分解才是必要的。
出生日期 2000-01-01 是星期六——工具由历元推算出星期几,无需查找表。又因为参照日期(8 月 7 日)早已过了 1 月 1 日的生日,所以下一个生日滚到 2027 年,距今 147 天。
常见问题#
为什么总天数比 年 × 365 多?#
因为有闰年。范围内的每一个 2 月 29 日都会多加一天,而一个四年段里通常有一个(能被 4 整除的年份,但不能被 400 整除的世纪年除外)。跨度 26 年,一般是 6 或 7 个额外日,再加上过了上个生日之后又活的月和天,凑成剩下的部分。工具是精确数出来的,不是估算。
我出生在 2 月 29 日,非闰年怎么办?#
工具在没有 2 月 29 日的年份,把你的生日按 2 月 28 日 处理——这是通行惯例。这样”下个生日倒计时”始终有数;到了真正的闰年,“今天是生日”会在 29 日那天触发。有些人喜欢在 3 月 1 日过,那是个人选择,不是算法问题。
为什么工具用 UTC,而不是我的本地时间?#
为的是无论在哪里打开页面,答案都一样。出生日期是个日历事实,不是个钟表事实:1 月 1 日出生,不该因为看的人在更早的时区就变成 12 月 31 日。按 UTC 天数运算,能让全世界的日历标签保持一致。
“总月数”和大字里的”月”有什么区别?#
大字里的”月”(“26 岁 7 个月 6 天”里的那个”7”)是扣掉整年之后剩下的——永远在 0 到 11 之间。总月数则是完整的计数 年 × 12 + 月(这里是 26 × 12 + 7 = 319),这是表单或医疗记录要你按月数报年龄时要的那个数。