身份证的校验(2)
来源:未知 责任编辑:责任编辑 发表时间:2014-01-20 07:51 点击:次
}
public static void getInfoe(String s){
String M=new String(s);
int y=Integer.parseInt(M.substring(6,10));
int m=Integer.parseInt(M.substring(10,12));
int d=Integer.parseInt(M.substring(12,14));
int[] xx={2,4,8, 5,10,9,7, 3,6,1,2, 4,8,5,10, 9,7};
char[] yy={'1','0','X','9','8','7','6','5','4','3','2'};
int mm=0;
int[] gg = new int[18];
if (y<1900 || m<1 || m>12 || d<1 || d>31 || ((m==4 || m==6 || m==9 || m==11) && d>30) ||(m==2 && ((y % 4>0 && d>28) || d>29))){
System.out.println("該居民身份證出生年月日錯誤!");
}
else{
System.out.println("该居民出生地:"+M.substring(0,6));
System.out.println("该居民出生时间为:"+y+"年"+m+"月"+d+"日");}
int sex=Integer.parseInt(M.substring(16,17));
if(sex%2==0){
System.out.println("该居民为:女性");
}
else{
System.out.println("该居民为:男性");
}
for(int i=1;i<18;i++){
int j = 17 - i;
gg[i-1]=Integer.parseInt(M.substring(j,j+1));
}
/************************校验身份证的真伪****************************/
for(int i=0;i<17;i++){
mm+=xx[i]*gg[i];
}
mm=mm%11;
char c= M.charAt(17);
相关新闻>>
- 发表评论
-
- 最新评论 更多>>