跳至内容

年龄计算器 — 精确年龄(年、月和天)

年龄计算器只需输入出生日期,即可精确算出以年、月、日表示的当前年龄,并同时给出已经历的总周数、总天数和总小时数。工具还会自动计算距离下一个生日还剩多少天,也可以指定任意目标日期计算当时的年龄。适合用于填写表格、核对法定年龄、规划生日庆祝或单纯满足好奇心,计算结果会自动考虑闰年,保证结果准确无误。

年龄计算器

精确年龄
36 7 个月 9

你出生于 Monday

下一个生日: 还有 144 天 (即将年满 37 岁)

你的年龄(其他单位)

个月
439
1,910
13,370
小时
320,880
分钟
19,252,800
1,155,168,000

生命进度

你的年龄相对于80年参考跨度的进度。

年龄可视化3636 / 80 yr080
加载计算器...
📚

文档

此计算器的功能

输入你的出生日期,它会精确告诉你你的年龄——以年、月、天表示——就像你说出来的方式一样("我33岁4个月5天")。它还以月、周、天、小时、分钟和秒来计算同样的年龄,显示你出生的日期是星期几,以及距离下一个生日还有多长时间。

将第二个字段保持在今天以获得你当前的年龄,或将其更改为任何过去或未来的日期以查找你在该日期的年龄。

**让年龄变得复杂的一条规则:**月和年不是固定的天数。2月有28或29天;其他月份有30或31天。所以"1个月"意味着"相同的日期数,一个月后"——而不是"30天"。此计算器遵循该日历规则,这就是为什么它与仅按30或365除法的工具相差一两天的原因。

如何计算你的年龄

年龄是两个日期之间的差距。测量该差距有两种诚实的方法,此工具会显示两者。

1. 日历年龄(年、月、天)。 从你的生日计算整年数,然后计算整月数,然后计算剩余天数:

  1. 计算出生以来完整的年数。
  2. 从上一个生日起,计算完整的月数。
  3. 从那里起,计算剩余的天数。

微妙之处在于第3步靠近月边界时。某人出生于1月31日,在3月1日测量时,是1个月零1天大——因为"1月31日后一个月"落在2月28/29(没有2月31日),3月1日是该日期之后的一天。此计算器会夹紧到较短月份的末尾,与广泛使用的dateutil.relativedelta规则相匹配,因此月末生日永远不会产生负的天数。

2. 总经过时间(天、小时、秒)。 对于"你的年龄以其他单位"数字,两个日期被转换为完整天数的计数并乘以:

days=target datebirth date86,400,000 ms\text{days} = \left\lfloor \frac{\text{target date} - \text{birth date}}{86{,}400{,}000 \text{ ms}} \right\rfloor

两个日期都首先固定在UTC午夜,因此夏令时更改无法添加或删除一小时并抛出天数。周数是天数÷7(向下舍入);小时、分钟和秒是天数的按比例放大。

为什么不直接用365除以天数? 因为你会漂移。用365除7,305天得到20.01年;用365.25除得到20.00——但都不知道哪些年是闰年,或者你实际上经历了哪些月份。日历计数很准确;日-除法是一个近似值。用日历年龄表示"我多大了",用总天数/周来做精确的经过时间工作(药物时间、项目持续时间、里程碑倒计时)。

实际例子

出生2000年1月1日,测量2020年1月1日

测量
日历年龄20年,0个月,0天
总天数7,305
总周数1,043
出生日期星期六

7,305天 = 20 × 365 + 5个闰日(2000、2004、2008、2012、2016)。那个单一的细节——大多数人忘记的五个额外的日子——正是计算器胜过心算的原因。

Birth date to target date: 20 years, 7,305 days Birth 2000-01-01 Target 2020-01-01 20 years = 7,305 days

代码中的年龄

每种语言中的相同计算。对于日历年龄,优先选择内置日期库而不是手工编写的算术——它已经知道闰年和月长。

1' Whole days between two dates (A1 = birth, B1 = target):
2=B1-A1
3
4' Calendar age in complete years / months / leftover days:
5=DATEDIF(A1, B1, "y") & " years, " & DATEDIF(A1, B1, "ym") & " months, " & DATEDIF(A1, B1, "md") & " days"
6

常见问题

我到底多大了? 输入你的出生日期并将目标保持在今天。计算器显示你的年龄(以年、月和天为单位),并以总天数、周、小时和秒重复。

为什么我的年龄与另一个计算器不同? 几乎总是月/天的剩余部分。工具对如何计算月边界后最后一个完整月后的天数意见不一。这个是夹紧到较短的月份(relativedelta约定);按30除法的工具会相差一两天。

它处理闰年和2月29日生日吗? 是的。天数包括范围内的每个闰日,2月29日生日在非闰年中针对2月28日/ 3月1日进行测量,不会溢出。

我可以计算过去或未来日期的年龄吗? 是的——将"年龄日期"字段设置为任何日期。未来日期告诉你那时会有多大;过去日期,你当时的年龄。

时区呢? 日期在计数前归一化为UTC,因此无论你在哪里或夏令时是否改变,整个星期的总数都是稳定的。

来源

  1. Python dateutilrelativedelta(此工具遵循的日历年龄月/日规则)。
  2. Java Platform — Period.betweenChronoUnit.DAYS
  3. Microsoft Excel — DATEDIF函数
  4. MDN Web Docs — Date
  5. Dershowitz, N., & Reingold, E. M. Calendrical Calculations: The Ultimate Edition. Cambridge University Press, 2018.