年龄计算器
结果
年
- 个月
- 9
- 天
- 2 天
- 总月数
- 441
- 总周数
- 1,917.7 周
- 总天数
- 13,424 天
- 总秒数
- 1,159,833,600 秒
年龄计算器按出生日期算出周岁:满几年、几个月、几天,再把同一个跨度折算成总月数、总周数、总天数和总秒数。这里算的是周岁,也就是出生时为 0 岁、每过一个生日长一岁的那种算法,与按正月初一长一岁的虚岁不是同一个数,同一人两者可能差一到三岁。今天是几号由页面自己读,不用你填。所有数字都来自同一个跨度,所以月、周、天、秒几项加起来一定等于整体。
公式
周岁 = 今天减出生日期,拆成满几年、满几个月与剩余天数;总月数、总周数、总天数与总秒数都由同一个跨度折算,不另行计数
- birthDate
- 出生日期。可以是公元 1 年以来的任意真实日期,但不能晚于今天
- years
- 满几岁——主结果,也是填表时通常要填的那个数,也就是周岁
- months
- 满几年之后剩余的整月数,0 到 11
- days
- 满几个月之后剩余的天数,0 到 30,不是两个日号直接相减
- totalMonths
- 整个跨度合多少个月;36 岁 0 个月就是 432 个月
- totalWeeks
- 跨度合多少周,保留一位小数
- totalDays
- 一共活了多少天,中间的闰日都算进去
- totalSeconds
- 总天数乘以 86400,用来回答「活了多少秒」这类纪念性问题
凡是答案要是年龄而不是天数的场合都用它:需要填年月日的表格、儿童或老人的体检节点、写成年龄条件的签证与退休规定、保险报价。这些场合要的正是年月日那一行,而总天数那一行适合算「活了多少天」或者对比一个用天数写的门槛。它不会告诉你未来的事——出生日期晚于今天就没有年龄可算,页面会直接报错,而不是给一个负数。想知道虚岁,或者想知道距离下一个生日还有多久,都不是这一页,前者要按农历另算,后者看生日计算器。
算例
1990 年 1 月 1 日出生,2026 年 1 月 15 日读
- 1990 年 1 月 1 日到 2026 年 1 月 1 日是满 36 年,所以 years 是 36
- 下一个整月节点是 2026 年 2 月 1 日,还没到,所以 months 是 0
- 2026 年 1 月 15 日离 1 月 1 日过了 14 天,所以 days 是 14
- 满 36 年是 36 × 12 = 432 个月,没有多余的整月
- 13163 天除以 7 是 1880.43,保留一位小数是 1880.4 周
- 13163 × 86400 = 1137283200 秒
生日在 1 月初会让这一屏看起来有点怪——36 岁 14 天却写着 0 个月。这是对的:months 只数满月,2 月 1 日还没到,那 14 天在 days 那一行里,一天没少。这也是周岁与虚岁最容易分岔的地方:按虚岁,这人在 2026 年春节已经又长了一岁。
闰日出生:2000 年 2 月 29 日
- 2000 年 2 月 29 日到 2026 年 1 月 15 日一共 9452 天
- 折成整月是 310 个月:从 2000 年 2 月 29 日往后走 310 个月落在 2025 年 12 月 29 日,走 311 个月就越过了 2026 年 1 月 15 日
- 310 个月是 25 年(300 个月)加剩余的 10 个月
- 2025 年 12 月 29 日到 2026 年 1 月 15 日是 17 天,这就是 days
- 9452 天除以 7 是 1350.29,保留一位小数是 1350.3 周
- 9452 × 86400 = 816652800 秒
2 月 29 日出生是区分「算对了」与「看着像对的」那种输入。先取年、再取月的写法会把锚点落在 12 月 28 日,得出 18 天;而从 2 月 29 日起算的 310 个整月落在 12 月 29 日。只差一天,也只有闰日出生的人能把它试出来。另外,闰日出生的人虚岁与周岁差得更多,因为虚岁不认生日,只认春节。
局限
「今天」取的是 UTC 日历日,不是本机时区的那一天,所以在东八区,凌晨那几小时算出来的周岁可能比你墙上日历晚一天。出生日期必须是真实存在的日期,填 2 月 30 日会被直接拒绝,而不是顺延到 3 月。出生日期晚于今天会报错而不是给负数,因为年龄是已经活过的时间。months 只数满月,所以一个月的多数日子里它都读 0,那几天要看 days。本页只算周岁,虚岁要按农历另算,页面读不到农历。
常见问题
- 周岁怎么算?和虚岁差多少?
- 周岁从出生那天算 0 岁,每过一个生日长一岁,也就是活满了多少个整年。虚岁从出生算 1 岁,每过一个正月初一长一岁,不认生日。所以同一个人的虚岁通常比周岁大 1 到 2 岁,个别人能大 3 岁,差额取决于生日在春节前还是春节后。本页给的是周岁。
- 为什么我明明过了生日,months 还是 0?
- 因为 months 只数满月,一个整月走完才算。2026 年 1 月 1 日出生满 36 年的人,在 1 月 15 日读到的就是 0 个月加 14 天,那 14 天在 days 那一行里。把月折算成小数会让三项加起来对不上总数,所以这里不折。
- 活了多少天怎么算?
- 看总天数那一行。1990 年 1 月 1 日出生、2026 年 1 月 15 日读,是 13163 天。这个数把中间每一个闰日都算进去了,所以比年数乘 365 要大。把它乘以 86400 就是总秒数,那一行是精确值,不是估算。
- 给小孩填表该用月龄还是岁数?
- 两岁以前建议用月龄,因为差别在临床上算数:14 个月和 23 个月在整岁上都是 1 岁,实际差了九个月。上面那个例子里的 310 个月,换成岁数就是 25 岁 10 个月。满两岁以后按岁加月写就够用了。
- 出生日期填成未来的日期会怎样?
- 页面会报错,而不是给一个负数,因为年龄是已经活过的时间。如果你是在倒计一个还没到的日子,比如预产期,那要用生日计算器,它接受未来的日期并往回数。在这里填出未来的日期,通常是年份打错了。
参考资料
- 年、月、日等计时单位是怎么形成的? — 科普中国
- 放开我这个 27 岁的孩子,你才虚岁 30 了! — 科普中国