做花名册、核对学生信息、整理报名表时,手上往往只有一串身份证号,没有单独的出生日期。这时候要先从号码里取出出生日期,再算年龄。
这篇用 NBTools 年龄计算器讲清怎么取、怎么算,以及一个很实际的坑:两种算法会差 1 岁。所有计算在浏览器本地完成,号码与生日不上传服务器。
第一步:从号码里取出出生日期
18 位身份证号的编排是固定的,其中第 7 位开始的连续 8 位就是出生日期,格式为 YYYYMMDD。
- 例如某号的第 7 到 14 位是
19901201,出生日期就是 1990 年 12 月 1 日。 - 把这段数字改写成
1990-12-01,填进年龄计算器的日期框即可。
如果你不想手工拆字符串,也可以用 身份证校验工具,它会直接解析出出生日期、性别等信息,再把日期填到年龄计算器。
第二步:两种口径,结果可能差 1 岁
这是最容易出错的地方。同样是算年龄,常见的有两种算法:
- 精确周岁:把年、月、日逐层相减,没过生日就不加这一岁。本工具用的是这种。
- 年份相减:只用「今年 − 出生年」,不管生日过了没有。一些系统和快速估算会用这种。
实测对照(以 2026-09-16 为基准):
| 出生日期 | 精确周岁 | 年份相减 | 差异 |
|---|---|---|---|
| 1990-12-01 | 35 岁 9 个月 15 天 | 36 | 差 1 岁 |
| 1990-09-17 | 35 岁 11 个月 30 天 | 36 | 差 1 岁 |
| 1990-01-01 | 36 岁 8 个月 15 天 | 36 | 一致 |
| 2000-06-15 | 26 岁 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 年龄计算器:https://nbtools.cn/tools/age
- 身份证校验:直接解析出生日期、性别与归属地
- 日期天数计算:算任意两个日期相差多少天
- 亲戚计算器:算称谓与找关系