身份证年龄计算器
批量解析身份证号码,计算年龄并统计分布
什么是身份证年龄计算器?
身份证年龄计算器用于从中国居民身份证号码中读取出生日期,并据此计算当前年龄。它适合核对报名表、会员资料、年龄门槛、考试数据或统计表时使用,避免人工从号码中拆出生年月日再手算周岁。工具只解析号码里已经包含的日期信息,不等同于官方身份核验,也不建议在没有必要的情况下保存完整身份证号。涉及隐私、未成年人保护或法律效力的场景,仍应以证件原件和机构正式校验流程为准。
使用方法
使用方法
- 在输入框中输入身份证号码,每行一个
- 点击「计算」按钮开始解析
- 查看每条身份证的详细信息(出生日期、年龄、性别、地区)
- 查看统计数据(平均年龄、年龄分布等)
- 可选复制结果或导出为 CSV 文件
隐私与校验提示
- 身份证号是敏感个人信息,请仅处理你有权使用的数据,避免随意分享导出结果。
- 校验位验证可以发现许多输入错误,但不能证明该身份证号确属本人所有。
- 批量处理时,在使用年龄分布或性别统计生成报告前,请先检查无效行。
使用场景
技术原理
GB 11643-1999 定义的 18 位居民身份证号码将五个字段编码为固定宽度字符串:第 1-6 位是 GB/T 2260 行政区划代码,第 7-14 位是 YYYYMMDD 格式的出生日期,第 15-17 位是发证顺序号,第 18 位是 ISO 7064 MOD 11-2 校验字符。1999 年之前的 15 位格式省略了世纪前缀和校验位,升级方式是在 YY 前插入 '19',然后计算末尾校验码。 校验码是验证的核心。前 17 位数字分别乘以权重序列 7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2,加权求和后对 11 取模,余数通过映射表 '1-0-X-9-8-7-6-5-4-3-2' 转换为校验字符。余数为 2 时结果是字面字符 'X' 而非数字,这就是为什么最后一位必须大小写不敏感地解析。性别仅由第 17 位的奇偶性决定(奇数为男,偶数为女),年龄则是当前年份与出生年份之差,如果当前日期早于当年生日则再减一。 算法无法证明的是该号码是否确属真人所有。一个保持校验码有效的单次换位仍会通过验证,行政区划合并后退役的地区码可能无法在 GB/T 2260 中解析,而奇偶位性别反映的是发证窗口期的分配,而非当前的自我认同。应将解析结果视为廉价的结构性验证,真正的身份核验应交由发证机关。
- 校验码:前 17 位按 ISO 7064:1983 MOD 11-2 计算,权重为 7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2,余数映射表为 '10X98765432'。
- 日期字段:第 7-14 位使用 YYYYMMDD 格式;即使校验码碰巧正确,也应拒绝不可能的日期如 19900230。
- 地区码:第 1-6 位遵循 GB/T 2260;行政区划合并后退役的代码仍能通过校验码验证,但无法解析为真实的区县名称。
- 15 位旧格式升级:在第 6 位和第 7 位之间插入 '19',然后重新计算 MOD 11-2 校验位;这就是为什么 15 位号码本身没有可验证的校验码。
- 性别位:第 17 位的奇偶性,奇数为男、偶数为女,由发证窗口的序列分配决定,而非自我认同。
- 年龄边界:当(当前月份、日期)早于(出生月份、日期)时减去一年,因此年内生日较晚的人比下一次生日时的实际年龄小一岁。
示例
解析单个身份证号
输入: 11010119900101****
地区: 110101 → 北京市东城区
出生: 1990-01-01
性别: 第 17 位为奇数 → 男 / 偶数 → 女
截至 2026-06-10 年龄: 36 岁
生肖: 马,星座: 摩羯座批量处理(每行一个)
Input (3 numbers):
11010119900101****
31010119851215****
44030120000628****
输出表格:
北京 | 1990-01-01 | 36 岁 | 男
上海 | 1985-12-15 | 40 岁 | 女
深圳 | 2000-06-28 | 25 岁 | 男年龄计算规则(今年生日是否已过?)
出生: 1990-09-15,今天: 2026-06-10
今年生日: 2026-09-15 → 还没到
年龄 = 2026 - 1990 - 1 = 35
出生: 1990-03-20,今天: 2026-06-10
今年生日已过
年龄 = 2026 - 1990 = 36旧 15 位身份证转 18 位
旧版(15 位,1999 年前): 110101900101001
补足世纪位: 110101 + 19 + 900101 + 001 = 110101199001010 01
再追加校验码(ISO 7064 MOD 11-2 算法): X
最终 18 位: 11010119900101001X
本工具会自动补上缺失的世纪前缀 19,并重新计算校验位,
让旧号码也能完成校验。隐私说明 — 全程本地处理
粘贴的身份证号不会上传到服务器,页面在浏览器内按以下位段解析:
第 1-6 位 → 行政区划代码 (GB/T 2260)
第 7-14 位 → YYYYMMDD 出生日期
第 15-17 位 → 顺序号(奇数=男,偶数=女)
第 18 位 → ISO 7064 MOD 11-2 校验码常见问题
支持哪些身份证号格式?
支持中国大陆 18 位和 15 位居民身份证号。15 位旧格式会先在内部升级为 18 位再解析。页面同时显示性别、签发地(根据地区码)和出生日期。
如何根据身份证号计算年龄?
18 位身份证号的第 7-14 位以 YYYYMMDD 格式编码出生日期。页面据此计算到今天的年龄,采用法定年龄约定(必须过完当年生日才算 N 岁)。
性别是怎么得出的?
第 17 位(倒数第二位)编码性别:奇数为男,偶数为女。页面直接读取,无需调用任何外部接口。
地区码代表什么?
前 6 位编码签发时的登记地:省(1-2 位)、市(3-4 位)、县/区(5-6 位)。需要注意的是,这是登记地而非现居地,很多人会沿用户籍所在地的身份证号。
校验码是怎么计算的?
第 18 位(最后一个字符)是前 17 位按权重 [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2] 加权后的 Mod-11-2 校验码。结果对 11 取模后映射为 0-9 或 X。页面会进行校验;校验位错误说明该身份证号是伪造的或输错了。
身份证号会被发送到服务器吗?
不会。解析和校验完全在浏览器中进行,身份证号不会离开你的设备。无论如何,请将身份证号视为敏感个人信息,不要粘贴到任何不熟悉的工具中。
为什么页面会对老的 15 位身份证号给出提示?
15 位身份证号是 1999 年之前签发的(年份不含世纪、没有校验码)。页面通过补 '19' 作为世纪并计算校验码将其升级为 18 位,但这假定持有人出生于 1900 年代。1999 年之后出生的人都是 18 位身份证号。