Java如何根据身份证号计算年龄

介绍

本篇内容主要讲解“Java如何根据身份证号计算年龄”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java如何根据身份证号计算年龄”吧!

<强>第一代身份证:15位身份证号码的意义

15位身份证号码各位的含义:1 - 2位省,自治区,直辖市代码,3 - 4位地级市,盟,自治州代码;5 - 6位县,县级市,区代码;7 - 12位出生年月日,比如<强> 670401代表1967年4月1日,<强>这是和18位号码的 <强>第一个区别强;13 - 15位为顺序号,其中15位男为单数,女为双数;与18位身份证号的<强>第二个区别:<强>没有最后一位的校验码

举例:130503 670401 001的含义;13为河北,05年为邢台,03年为桥西区,出生日期为1967年4月1日,顺序号为001

<强>第二代身份证:18位身份证号码的意义

①前1、2位数字表示:所在省份的代码,河南的省份代码是41哦!②第3、4位数字表示:所在城市的代码;③第5、6位数字表示:所在区县的代码;④第7 ~ 14位数字表示:出生年、月、日;⑤第15、16位数字表示:所在地的派出所的代码;⑥第17位数字表示性别:奇数表示男性,偶数表示女性;⑦第18位数字是校检码:也有的说是个人信息码,一般是随计算机随机产生,用来检验身份证的正确性。校检码可以是0 ~ 9的数字,有时也用x表示。

举例:

130503 19670401 0012这个身份证号的含义:13为河北,05年为邢台,03年为桥西区,出生日期为1967年4月1日,顺序号为001,2为校验码。

<强>根据身份证号(18位)提取出生年月日和计算年龄

包经办人身份证;进口java.text.SimpleDateFormat;进口java.util.Date;公共类IdCardTest{//根据身份证号输出年龄公共静态int IdNOToAge(字符串IdNO) {, int列城=IdNO.length ();字符串,日期=?“;,int年龄=0;,如果(列城==18){,日期=IdNO。substring (10);,SimpleDateFormat df=new SimpleDateFormat (“yyyy");,年=df字符串。格式(新日期());,年龄=Integer.parseInt(年)-Integer.parseInt(日期);其他}{大敌;System.out.println(“出错!身份证长度不是18位!“);,}返回年龄;}公共静态void main (String [] args) {, System.out.println (IdNOToAge (“120000197802150561“));,System.out.println (IdNOToAge (“32000019951110538 x"));}}

<强> 15位身份证号码转换成18位身份证号码

包经办人身份证;进口java.util.Scanner;公共类IDcard15bitTo18bit{公共静态String [] trans15bitTo18bit (String[]输入){,String[]结果=新的字符串[18];,(int i=0; i

<强>附: c#版与VB版15位的身份证号转为18位操作示例

<强> c#版

函数ID15T18 (strTemp) {var arrInt=new Array (7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2); var arrCh=new Array (& # 39; 1 & # 39; & # 39; 0 & # 39;, & # 39; x # 39;, & # 39; 9 & # 39;, & # 39; 8 & # 39;, & # 39; 7 & # 39;, & # 39; 6 & # 39;, & # 39; 5 & # 39;, & # 39; 4 & # 39;, & # 39; 3 & # 39;, & # 39; 2 & # 39;);var nTemp=0,我;如果(strTemp.length==15) {strTemp=strTemp.substr (0, 6) + & # 39; 19 & # 39;strTemp.length-6 + strTemp.substr(6日),(i=0;我& lt;strTemp.length;我+ +){nTemp +=strTemp。null

Java如何根据身份证号计算年龄