只有身份证号怎么算年龄?两种口径会差 1 岁

实测:1990-12-01 出生,精确周岁是 35 岁,而按年份相减会算成 36

做花名册、核对学生信息、整理报名表时,手上往往只有一串身份证号,没有单独的出生日期。这时候要先从号码里取出出生日期,再算年龄。

这篇用 NBTools 年龄计算器讲清怎么取、怎么算,以及一个很实际的坑:两种算法会差 1 岁。所有计算在浏览器本地完成,号码与生日不上传服务器

第一步:从号码里取出出生日期

18 位身份证号的编排是固定的,其中第 7 位开始的连续 8 位就是出生日期,格式为 YYYYMMDD

  • 例如某号的第 7 到 14 位是 19901201,出生日期就是 1990 年 12 月 1 日
  • 把这段数字改写成 1990-12-01,填进年龄计算器的日期框即可。

如果你不想手工拆字符串,也可以用 身份证校验工具,它会直接解析出出生日期、性别等信息,再把日期填到年龄计算器。

第二步:两种口径,结果可能差 1 岁

这是最容易出错的地方。同样是算年龄,常见的有两种算法:

  • 精确周岁:把年、月、日逐层相减,没过生日就不加这一岁。本工具用的是这种。
  • 年份相减:只用「今年 − 出生年」,不管生日过了没有。一些系统和快速估算会用这种。

实测对照(以 2026-09-16 为基准):

出生日期精确周岁年份相减差异
1990-12-0135 岁 9 个月 15 天36差 1 岁
1990-09-1735 岁 11 个月 30 天36差 1 岁
1990-01-0136 岁 8 个月 15 天36一致
2000-06-1526 岁 3 个月 1 天26一致

看出规律了吗:今年生日还没到的人,两种算法会差 1 岁;生日已过,两者一致。

办证、入学、投保这类场景通常要求精确周岁。如果对方系统给的是年份相减的结果,而当事人今年生日未到,就会出现「系统说我 36,实际周岁 35」的情况——以对方要求的口径为准,必要时用本工具复核。

顺带还能拿到四个信息

填好出生日期后,工具会同时给出:

  • 出生星期:例如 1990-12-01 是星期六。
  • 生肖:按出生公历年份对应十二属相。
  • 已出生天数:从出生日到今天一共多少天。
  • 距下次生日:还有多少天,并给出下次生日的具体日期。

关于生肖要多说一句:工具按公历年份取值,而严格来说生肖以农历正月初一为界。年初(1 月、2 月)出生的人,结果可能与实际属相差一年,遇到这种情况请以农历为准。

两个使用边界

  • 不能选未来日期:日期框限制了最大值为今天,选了将来的日期会提示「请选择有效的出生日期」。
  • 本文按 18 位身份证号说明:更早的 15 位号码编排不同,建议先确认位数再取日期段。

常见问题

身份证号里哪几位是出生日期?

18 位号码中第 7 位开始的连续 8 位,格式为 YYYYMMDD。例如 19901201 即 1990 年 12 月 1 日。

为什么我算出来比系统里的年龄小 1 岁?

多半是口径不同。精确周岁在生日未到时不会加这一岁,而有些系统直接用「今年 − 出生年」。实测 1990-12-01 出生时,精确周岁为 35,年份相减为 36。

办证、入学以哪个为准?

通常以精确周岁为准,但具体要求以办理机构的规定为准。若对方给出的是年份相减口径,而当事人今年生日未到,两者会差 1 岁。

生肖算得准吗?

工具按公历出生年份对应属相。严格来说生肖以农历正月初一为界,年初出生者的结果可能与实际属相差一年,建议按农历核对。

能算任意两个日期之间相差多少天吗?

本工具面向出生日期。要算任意两日之差,可用日期天数计算工具。

输入身份证号或生日会上传吗?

不会。本工具与身份证校验工具都在浏览器本地完成计算,号码和日期都不上传服务器。

相关工具

作者:NBTools · 更新于 2026年10月7日 · 阅读约 4 分钟