最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java根據(jù)身份證號計算年齡,15位身份證號碼轉(zhuǎn)18位原理與操作示例

 更新時間:2019年10月16日 10:38:10   作者:Ares626  
這篇文章主要介紹了Java根據(jù)身份證號計算年齡,15位身份證號碼轉(zhuǎn)18位原理與操作,結(jié)合實例形式詳細(xì)分析了構(gòu)成身份證號碼的各個位的含義,15位身份證號碼轉(zhuǎn)18位的方法及Java根據(jù)身份證號計算年齡相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Java根據(jù)身份證號計算年齡,15位身份證號碼轉(zhuǎn)18位。分享給大家供大家參考,具體如下:

第一代身份證:15位身份證號碼的意義

15位身份證號碼各位的含義:
1-2位省、自治區(qū)、直轄市代碼;
3-4位地級市、盟、自治州代碼;
5-6位縣、縣級市、區(qū)代碼;
7-12位出生年月日,比如670401代表1967年4月1日,這是和18位號碼的第一個區(qū)別;
13-15位為順序號,其中15位男為單數(shù),女為雙數(shù);
與18位身份證號的第二個區(qū)別沒有最后一位的校驗碼。

舉例:
130503 670401 001的含義; 13為河北,05為邢臺,03為橋西區(qū),出生日期為1967年4月1日,順序號為001

第二代身份證:18位身份證號碼的意義

 ?、偾?、2位數(shù)字表示:所在省份的代碼,河南的省份代碼是41哦!
  ②第3、4位數(shù)字表示:所在城市的代碼;
  ③第5、6位數(shù)字表示:所在區(qū)縣的代碼;
  ④第7~14位數(shù)字表示:出生年、月、日;
  ⑤第15、16位數(shù)字表示:所在地的派出所的代碼;
 ?、薜?7位數(shù)字表示性別:奇數(shù)表示男性,偶數(shù)表示女性;
 ?、叩?8位數(shù)字是校檢碼:也有的說是個人信息碼,一般是隨計算機(jī)隨機(jī)產(chǎn)生,用來檢驗身份證的正確性。校檢碼可以是0~9的數(shù)字,有時也用x表示。

舉例:

130503 19670401 0012這個身份證號的含義: 13為河北,05為邢臺,03為橋西區(qū),出生日期為1967年4月1日,順序號為001,2為校驗碼。

根據(jù)身份證號(18位)提取出生年月日和計算年齡

package idcard;
import java.text.SimpleDateFormat;
import java.util.Date;
public class IdCardTest {
 //根據(jù)身份證號輸出年齡
 public static int IdNOToAge(String IdNO){
  int leh = IdNO.length();
  String dates="";
  int age = 0;
  if (leh == 18) {
   dates = IdNO.substring(6, 10);
   SimpleDateFormat df = new SimpleDateFormat("yyyy");
   String year = df.format(new Date());
   age = Integer.parseInt(year)-Integer.parseInt(dates);
  }else {
   System.out.println("出錯!身份證長度不是18位!");
  }
  return age;
 }
 public static void main(String[] args) {
  System.out.println(IdNOToAge("120000197802150561"));
  System.out.println(IdNOToAge("32000019951110538X"));
 }
}

15位身份證號碼轉(zhuǎn)換成18位身份證號碼

package idcard;
import java.util.Scanner;
public class IDcard15bitTo18bit {
 public static String[] trans15bitTo18bit(String[] input){
  String[] result = new String[18];
  for(int i=0;i<input.length;i++){
   if(i<=5){
    result[i] = input[i];
   }else{
    result[i+2] = input[i];
   }
  }
  //年份最后兩位小于17,年份為20XX,否則為19XX
  if(Integer.valueOf(input[6])<=1&&Integer.valueOf(input[7])<=7){
   result[6]="2";
   result[7]="0";
  }else{
   result[6]="1";
   result[7]="9";
  }
  //計算最后一位
  String[] xs = {"7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2"};
  //前十七位乘以系數(shù)[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2],
  int sum = 0;
  for(int i=0;i<17;i++){
   sum+= Integer.valueOf(result[i]) * Integer.valueOf(xs[i]);
  }
  //對11求余,的余數(shù) 0 - 10
  int rod = sum % 11;
  //所得余數(shù)映射到對應(yīng)數(shù)字即可
  if(rod==0){ result[17] = "1";
  }else if(rod==1){ result[17] = "0";
  }else if(rod==2){ result[17] = "X";
  }else if(rod==3){ result[17] = "9";
  }else if(rod==4){ result[17] = "8";
  }else if(rod==5){ result[17] = "7";
  }else if(rod==6){ result[17] = "6";
  }else if(rod==7){ result[17] = "5";
  }else if(rod==8){ result[17] = "4";
  }else if(rod==9){ result[17] = "3";
  }else if(rod==10){ result[17] = "2";}
  return result;
 }
 public static void main(String[] args) {
   //創(chuàng)建輸入對象
   Scanner sc=new Scanner(System.in);
   //獲取用戶輸入的字符串
   String str="";
   System.out.print("請輸入您的15位身份證號:");
   str=sc.nextLine();
   System.out.println("您輸入的15位身份證號為:"+str);
   if(str.length()==15){
    String[] input = str.split("");
    String[] result = trans15bitTo18bit(input);
    System.out.print("您的18位身份證號是:");
    for(String c:result){
     System.out.print(c);
    }
   }else{
    System.out.println("不符合格式的身份證號!");
   }
 }
}

附:C# 版與VB 版 15位的身份證號轉(zhuǎn)為18位操作示例

C# 版

function 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('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); 
var nTemp = 0, i;
if(strTemp.length==15)
{
strTemp = strTemp.substr(0,6) + '19' + strTemp.substr(6,strTemp.length-6);
for(i = 0; i < strTemp.length; i ++)
{
nTemp += strTemp.substr(i, 1) * arrInt[i];
}
strTemp += arrCh[nTemp % 11];
}
return strTemp;
}

VB 版

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<strTemp.Length;i++)
{
nTemp+=int.Parse(strTemp.Substring(i,1).ToString())*arrInt[i];
}
strTemp+=arrCh[nTemp%11];
}
chardd=arrCh[nTemp%11];
returnstrTemp;
}

PS:這里再提供一款本站身份證歸屬地信息查詢工具供大家參考:

身份證歸屬地信息在線查詢:
http://tools.jb51.net/bianmin/sfz

另外,本站在線工具小程序上也有一款功能更加強(qiáng)大的身份證信息獲取工具,感興趣的朋友可以掃描如下小程序碼查看:

更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java字符與字符串操作技巧總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • 詳解Servlet入門級設(shè)置(超詳細(xì) IDEA2020版)

    詳解Servlet入門級設(shè)置(超詳細(xì) IDEA2020版)

    這篇文章主要介紹了詳解Servlet入門級設(shè)置(超詳細(xì) IDEA2020版),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • idea版本控制忽略.idea文件和.iml文件的問題

    idea版本控制忽略.idea文件和.iml文件的問題

    這篇文章主要介紹了idea版本控制忽略.idea文件和.iml文件,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Java代理模式(Proxy)實現(xiàn)方法詳解

    Java代理模式(Proxy)實現(xiàn)方法詳解

    這篇文章主要介紹了Java代理模式(Proxy)實現(xiàn)的相關(guān)資料,代理模式是一種結(jié)構(gòu)型設(shè)計模式,通過引入代理對象來控制對目標(biāo)對象的訪問,代理模式的優(yōu)點(diǎn)包括職責(zé)清晰、擴(kuò)展性好、保護(hù)目標(biāo)對象和增強(qiáng)功能,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • Java基礎(chǔ)第四篇 封裝與接口

    Java基礎(chǔ)第四篇 封裝與接口

    本文將對介紹Java 的封裝與接口進(jìn)行介紹,將要封裝(encapsulation)對象的成員(成員包括數(shù)據(jù)成員和方法),從而只允許從外部調(diào)用部分的成員。利用封裝,我們可以提高對象的易用性和安全性。想具體了解的小伙伴請參考下面文章的內(nèi)容
    2021-09-09
  • SpringBoot獲取application.properties文件中文亂碼問題及解決

    SpringBoot獲取application.properties文件中文亂碼問題及解決

    這篇文章主要介紹了SpringBoot獲取application.properties文件中文亂碼問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java遞歸查找層級文件夾下特定內(nèi)容的文件的方法

    Java遞歸查找層級文件夾下特定內(nèi)容的文件的方法

    這篇文章主要介紹了Java遞歸查找層級文件夾下特定內(nèi)容的文件,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Mybatis SQL運(yùn)行流程源碼詳解

    Mybatis SQL運(yùn)行流程源碼詳解

    這篇文章主要介紹了Mybatis SQL運(yùn)行流程源碼詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • 使用Java編寫GUI對話框的教程

    使用Java編寫GUI對話框的教程

    這篇文章主要介紹了使用Java編寫GUI對話框的教程,是Java圖形化編程中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10
  • Java 對HashMap進(jìn)行排序的三種常見方法

    Java 對HashMap進(jìn)行排序的三種常見方法

    這篇文章主要介紹了Java 對HashMap進(jìn)行排序的三種常見方法,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-10-10
  • JWT原理與java操作jwt驗證詳解

    JWT原理與java操作jwt驗證詳解

    這篇文章主要介紹了JWT原理與java操作jwt驗證,詳細(xì)分析了JWT的基本概念、原理與java基于JWT進(jìn)行token驗證的相關(guān)操作技巧,需要的朋友可以參考下
    2023-06-06

最新評論

兰坪| 武山县| 兰考县| 五大连池市| 满城县| 岳西县| 西宁市| 读书| 石河子市| 高唐县| 德钦县| 黑龙江省| 大安市| 育儿| 德格县| 怀安县| 区。| 哈巴河县| 九龙坡区| 香格里拉县| 靖边县| 松江区| 丘北县| 雷山县| 彩票| 莒南县| 扎赉特旗| 远安县| 中江县| 秦安县| 邳州市| 揭阳市| 磐石市| 四川省| 大姚县| 临猗县| 宿州市| 文水县| 扶余县| 松原市| 乌什县|