如何利用身份证号码计算出生年月,年龄及性别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何利用身份证号码计算出生年月,年龄及性别相关的知识,希望对你有一定的参考价值。

  生日期码

  (身份证号码第七位到第十四位)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。年龄就是2016-1981=35岁。

  顺序码

  (身份证号码第十五位到十七位)地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。其中第十七位奇数分给男性,偶数分给女性。例如第十七位是4就是女性,十七位是7就是男性。


  公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

  结构和形式

    1.号码的结构
  公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
  2.地址码
  表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。
  3.出生日期码
  表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。

  4.顺序码
  表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
  5.校验码
  根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。

参考技术A 有必要吗?出生年月写的清清楚楚,还要计算?尾号显示了性别,还要计算?再说,性别可以计算吗?
年龄倒要做个计算,减法总会吧。本回答被提问者采纳
参考技术B 一、身份证号码的构成规则:
1、前6位为地区代码。具体请在网上搜索相关介绍。
2、7位至14位,出生年月日,7—10位出生年,11—12出生月(两位),13—14出生日。
3、15—18位,识别代码。其中第17位就是性别代码,单数为男,双数(含0)为女。
二、从身份证中提取相应的位数进行相应的计算。
1、提取出生年月日并用日期格式表示在单元格里(mid函数+date函数)。
(1)mid函数一共有三个参数:第1个表示字符串或单元格,第2个表示从第几位开始提(用数字表示),第3个表示需要提取几位(用数字表示)。如本例从身份证中提取出生年月日就是要提取第7位开始的8位。用函数表示为:=mid(存放身份证的单元格,7,8)
(2)这样不是标准的日期格式,为我们计算年龄增加了困难,所以要用date函数来生成日期格式。
date函数就是日期函数,一共有三个参数,具体表示为:=date(年,月,日)。如:=date(1966,3,13)得出的结果就是(1966-3-13)
本例需要结合两个函数进行。具体公式为:=DATE(MID(A2,7,4),MID(A2,11,2),MID(A2,13,2)),最后记得要将单元格格式设置为“日期”才行哦。
2、计算年龄(DATEDIF函数),具体公式为:=DATEDIF(B2,TODAY(),"y")
此函数有三个参数,第一个表示开始日期(本例为出生日期),第二个表示结束日期(本例为今天,公示中用了一个TODAY函数,表示提取计算机日期,此函数没有参数,所以只用了一个双括号表示),第三个参数为计算相差什么(年用Y,月用M,日用D。本例指相差的年,所以用Y)。
3、计算性别(if函数+mod函数)
(1)if函数:假如条件为真时显示什么,为假时显示什么。具体为:=if(条件,真时显示,假时显示)。如:=if(3>1,1,0)表示如果3大于1,就显示1,否则就显示0,显然,这个的结果是1。
(2)mod函数:表示求两数相除的余数。语法为:=mod(被除数,除数)。如:=mod(9,2)结果为1。
(3)本例需要提取第17位数字进行判断,单数为男,双数为女。很显然,一个数除以2,余数是1的是单数,余数是0的是双数。具体公式为:=IF(MOD(MID(A2,17,1),2)=1,"男","女")

以上是关于如何利用身份证号码计算出生年月,年龄及性别的主要内容,如果未能解决你的问题,请参考以下文章

在EXCELL里输入身份证号后,怎样利用函数提取性别,生日呢?

各位兄弟都来,如何在sql里利用身份证查询出生日期?

excel 中把身份证号转换成年龄和出生日期的公式是啥?

如何在数据库中利用sql从18位身份证号中截取出生日期,身份证号在reader表中

如何用jQuery实现输入身份证号码后,出生日期自动生成

excel身份证号如何提取出生日期?