身份证的校验(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);  
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Java编程语言的八大优点
  • JVM对象生命周期详细介绍
  • Java平台上的CRM系统
  • Java 算数测试小程序
  • Command(命令模式)
  • Java环境 使用Resin在NT环境下配置JSP环境
  • Java 一个简单的画图程序
  • Java 日历的小程序
  • Java 统计代码的小工具
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1