设为首页收藏本站

家园小助手 发布于2022-7-22 21:03 104 次浏览 0 位用户参与讨论 [复制链接]
package com.hzrc.acl.authentication.security.util;import java.util.Calendar;/**
 * 根据身份证号获取相关信息
 */public class getInfoByIdentityCodeUtil {    /**
     * 校验身份证的正确性
     * @param identityCard
     * @return
     */
    private static boolean getValidIdentityCard(String identityCard){        if(identityCard == null || identityCard.length() == 0) return false;        if(identityCard.length() != 18) return false;        char[] identities = identityCard.toCharArray();        int code = 0;        int[] number = new int[]{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1};        char[] numberArray = new char[]{'1','0','X','9','8','7','6','5','4','3','2'};        for(int i =0 ; i < 17; i++)
        {            if(identities[i] < '0' || identities[i] > '9')
            {                return false;
            }
            code += (identities[i] -'0') * number[i];
        }
        code = code % 11;        if(numberArray[code] != identities[17])
        {            return false;
        }        return true;
    }    /**
     * 根据身份证号获取性别
     * @param identityCode
     * @return 0位置 1男生 2女生
     */
    public static Integer getGender(String identityCode) {        if(identityCode == null || identityCode.length() == 0) return 0;        int gender = 0;        if(identityCode.length() == 18){            //如果身份证号18位,取身份证号倒数第二位
            char c = identityCode.charAt(identityCode.length() - 2);
            gender = Integer.parseInt(String.valueOf(c));

        }else{            //如果身份证号15位,取身份证号最后一位
            char c = identityCode.charAt(identityCode.length() - 1);
            gender = Integer.parseInt(String.valueOf(c));

        }        if(gender % 2 == 1)   return 1;        return 2;

    }    /**
     * 根据身份证号获取出生年月
     * @param identityCode
     * @return
     */
    public static String getBirthday(String identityCode) {

        String birthday = null;        if(identityCode == null || identityCode.length() == 0) return birthday;        if (identityCode.length() == 15) {
            birthday = "19" + identityCode.substring(6, 8) + "-" + identityCode.substring(8, 10) + "-"
                    + identityCode.substring(10, 12);
        } else if (identityCode.length() == 18) {
            birthday = identityCode.substring(6, 10) + "-" + identityCode.substring(10, 12) + "-"
                    + identityCode.substring(12, 14);
        }        return birthday;

    }    /**
     * 根据身份证号获取年龄
     * @param identityCode
     * @return
     */
    public static Integer getAge(String identityCode) {        int age = 0;        if(identityCode == null || identityCode.length() == 0) return age;        int year = Calendar.getInstance().get(Calendar.YEAR);        if (identityCode.length() == 15) {
            age = (year - Integer.parseInt("19" + identityCode.substring(6, 8)));
        } else if (identityCode.length() == 18) {

            age = (year - Integer.parseInt(identityCode.substring(6, 10)));
        }        return age;
    }    /**
     * 根据身份证号获取籍贯
     * @param identityCode
     * @return
     */
    public static String getNaticePlace(String identityCode) {        if(identityCode == null || identityCode.length() == 0) return null;        int nativePlaceCode=Integer.parseInt(identityCode.substring(0, 6));        return NativePlace.getNativePlace(nativePlaceCode);

    }    public static void main(String[] args) {
        

    }





}
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei%
微信搜索公众号【深圳家】或者直接搜索【i-shenzhen】,获取更多信息

主题推荐

    暂无主题推荐
回复

使用道具 举报

快捷回复: 【看帖回帖是一种美德】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ| Archiver|手机版|小黑屋|深圳家|家在深圳论坛-深圳城事生活社区-心安处即故乡

深圳家,宏跃创智旗下科技门户网站 - 爱家,爱生活,心安处即故乡。

Copyright © 2001-2213 Comsenz Inc.   All Rights Reserved.

Powered by 宏跃创智 X3.4

快速
发帖
快速
回复
返回
列表
返回
顶部