ToolAct工具行动

身份证年龄计算器

批量解析身份证号码,计算年龄并统计分布

输入身份证号码

什么是身份证年龄计算器?

身份证年龄计算器用于从中国居民身份证号码中读取出生日期,并据此计算当前年龄。它适合核对报名表、会员资料、年龄门槛、考试数据或统计表时使用,避免人工从号码中拆出生年月日再手算周岁。工具只解析号码里已经包含的日期信息,不等同于官方身份核验,也不建议在没有必要的情况下保存完整身份证号。涉及隐私、未成年人保护或法律效力的场景,仍应以证件原件和机构正式校验流程为准。

使用方法

使用方法

  1. 在输入框中输入身份证号码,每行一个
  2. 点击「计算」按钮开始解析
  3. 查看每条身份证的详细信息(出生日期、年龄、性别、地区)
  4. 查看统计数据(平均年龄、年龄分布等)
  5. 可选复制结果或导出为 CSV 文件

隐私与校验提示

  • 身份证号是敏感个人信息,请仅处理你有权使用的数据,避免随意分享导出结果。
  • 校验位验证可以发现许多输入错误,但不能证明该身份证号确属本人所有。
  • 批量处理时,在使用年龄分布或性别统计生成报告前,请先检查无效行。

使用场景

从身份证号提取年龄和个人信息字段粘贴一个或多个 15 位或 18 位中国大陆居民身份证号码,工具会验证校验码、地区码、出生日期、年龄和性别等编码字段。18 位校验码遵循 ISO 7064:1983 MOD 11-2 标准,权重因子为 7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2,映射表为 '10X98765432',15 位旧格式号码会在内部转为 18 位(以 19 为世纪前缀)后再校验。了解这些规则有助于理解为什么号码主体中任意一位数字翻转都会导致校验码无效。
批量分析年龄和地区分布利用汇总统计数据(总数、有效数、无效数、平均年龄、最小值、最大值、中位数、性别计数、年龄段分布、省份分布)来清理注册或调查数据。省份前缀为前六位行政区划代码(GB/T 2260),因此以 110108 和 110105 开头的号码都是北京但属于不同区县。将地区汇总视为规划快照,发布前请以权威人口统计表确认最终数据。
将身份证解析与身份核验区分开本工具检查格式和校验码逻辑,但不确认该号码确属本人所有、证件是否有效或提取的数据是否具有法律效力。一个有效的 18 位字符串仍可能对应已注销、已故或虚构的身份,性别位由发证窗口的奇偶规则决定,而非当前自我认同。请将输出视为解析后的参考数据,而非身份核验结果。
在粘贴列表中发现无效或格式错误的条目粘贴身份证号码列表后,通过查看无效行来捕获输入错误、缺失校验位、地区码互换或 15 位旧格式条目,避免在交给人事、注册或财务部门前出错。最常见的错误是数字互换后仍通过日期检查、20xx 年行政区划合并后已废弃的地区码,以及复制粘贴产生的全角字符导致数字过滤失败。在此阶段捕获这些问题比下游再做核对成本更低。
根据年龄段表检查资格门槛使用年龄段汇总快速查看有多少条目落入考试资格、会员等级、折扣门槛、老年人年龄规则或保险年龄区间,无需在提取的出生日期上编写自定义分桶代码。年龄按当前日期计算,因此年内生日较晚的人会比下个月少一岁,这对处于截止日期边缘的门槛很重要。如果年龄段在边界处很重要,请在资格日期当天重新运行批量计算。

技术原理

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 位身份证号。