第一代身份证:15位身份证号码的意义
15位身份证号码各位的含义:1-2位省、自治区、直辖市代码;3-4位地级市、盟、自治州代码;5-6位县、县级市、区代码;7-12位出生年月日,比如670401代表1967年4月1日,这是和18位号码的第一个区别;13-15位为顺序号,其中15位男为单数,女为双数;与18位身份证号的第二个区别:没有最后一位的校验码。
举例:130503670401001的含义;13为河北,05为邢台,03为桥西区,出生日期为1967年4月1日,顺序号为001
第二代身份证:18位身份证号码的意义
①前1、2位数字表示:所在省份的代码,河南的省份代码是41哦!②第3、4位数字表示:所在城市的代码;③第5、6位数字表示:所在区县的代码;④第7~14位数字表示:出生年、月、日;⑤第15、16位数字表示:所在地的派出所的代码;⑥第17位数字表示性别:奇数表示男性,偶数表示女性;⑦第18位数字是校检码:也有的说是个人信息码,一般是随计算机随机产生,用来检验身份证的正确性。校检码可以是0~9的数字,有时也用x表示。
举例:
130503196704010012这个身份证号的含义:13为河北,05为邢台,03为桥西区,出生日期为1967年4月1日,顺序号为001,2为校验码。
根据身份证号(18位)提取出生年月日和计算年龄
packageidcard;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassIdCardTest{//根据身份证号输出年龄publicstaticintIdNOToAge(StringIdNO){intleh=IdNO.length();Stringdates="";intage=0;if(leh==18){dates=IdNO.substring(6,10);SimpleDateFormatdf=newSimpleDateFormat("yyyy");Stringyear=df.format(newDate());age=Integer.parseInt(year)-Integer.parseInt(dates);}else{System.out.println("出错!身份证长度不是18位!");}returnage;}publicstaticvoidmain(String[]args){System.out.println(IdNOToAge("120000197802150561"));System.out.println(IdNOToAge("32000019951110538X"));}}15位身份证号码转换成18位身份证号码
附:C#版与VB版15位的身份证号转为18位操作示例
C#版
functionID15T18(strTemp){vararrInt=newArray(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);vararrCh=newArray('1','0','X','9','8','7','6','5','4','3','2');varnTemp=0,i;if(strTemp.length==15){strTemp=strTemp.substr(0,6)+'19'+strTemp.substr(6,strTemp.length-6);for(i=0;i privatestringConvert15To18(stringstrTemp){int[]arrInt=newint[]{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};stringarrCh="10X98765432";intnTemp=0;if(strTemp.Length==15){strTemp=strTemp.Substring(0,6)+"19"+strTemp.Substring(6,strTemp.Length-6);for(inti=0;i 另外,本站在线工具小程序上也有一款功能更加强大的身份证信息获取工具,感兴趣的朋友可以扫描如下小程序码查看: