身份证工具类各式各样的操作

根据身份证号获取年龄

 /**
     * 根据身份编号获取年龄
     *
     * @param idCard 身份编号
     * @return 年龄
     */
    public static int getAgeByIdCard(String idCard) {
        int iAge = 0;
        Calendar cal = Calendar.getInstance();
        String year = idCard.substring(6, 10);
        int iCurrYear = cal.get(Calendar.YEAR);
        iAge = iCurrYear - Integer.valueOf(year);
        return iAge;
    }

根据身份编号获取生日

  /**
     * 根据身份编号获取生日
     *
     * @param idCard 身份编号
     * @return 生日(yyyyMMdd) 
     */
    public static String getBirthByIdCard(String idCard) {
        return idCard.substring(6, 14);
    }

根据身份编号获取生日年

  /**
     * 根据身份编号获取生日年
     *
     * @param idCard 身份编号
     * @return 生日(yyyy)
     */
    public static Short getYearByIdCard(String idCard) {
        return Short.valueOf(idCard.substring(6, 10));
    }

根据身份编号获取生日月

 /**
     * 根据身份编号获取生日月
     *
     * @param idCard 身份编号
     * @return 生日(MM)
     */
    public static Short getMonthByIdCard(String idCard) {
        return Short.valueOf(idCard.substring(10, 12));
    }

根据身份编号获取生日天

 public static Short getDateByIdCard(String idCard) {
        return Short.valueOf(idCard.substring(12, 14));
    }

根据身份编号获取性别

 /**
     * 根据身份编号获取性别
     *
     * @param idCard 身份编号
     * @return 性别(M - 男 , F - 女 , N - 未知)
     */
    public static String getGenderByIdCard(String idCard) {
        String sGender = "未知";
        String sCardNum = idCard.substring(16, 17);
        if (Integer.parseInt(sCardNum) % 2 != 0) {
            sGender = "0";//男 1
        } else {
            sGender = "1";//女 2
        }
        return sGender;
    }

获取生日

/**
     * 获取生日
     *
     * @param idCard
     * @return
     */
    public static String getBirthdayByIdCard(String idCard) {
        Short nian = getYearByIdCard(idCard);
        Short yue = getMonthByIdCard(idCard);
        Short ri = getDateByIdCard(idCard);
        String birthDay = nian + "-" + yue + "-" + ri;
        return birthDay;
    }

身份证类型对应证件

 /**
     * 身份证类型对应的证件名称映射工具(数据库中没有对应的字典表所以执行以下操作)
     * 具体看跟前端怎么商量着来,如果前端来判断的话,用户体验可能不太好
     * 后端可以直接在服务期操作,服务器的执行速度要比客户端快
     * @author 
     * @date 
     * @return  将返回证件类型对应的证件名称
     * @param idCardType 这个参数是一个数字,字符串格式的数字
     */
    public static String getIdCardName(String idCardType) {
        String birthDay = "";
        switch (idCardType) {
            case "0":
                birthDay = "居民身份证";
                break;
            case "1":
                birthDay = "护照";
                break;
            case "2":
                birthDay = "军官证";
                break;
            case "3":
                birthDay = "驾照";
                break;
            case "4":
                birthDay = "户口本";
                break;
            case "5":
                birthDay = "学生证";
                break;
            case "6":
                birthDay = "工作证";
                break;
            case "10":
                birthDay = "中国护照";
                break;
            case "11":
                birthDay = "外国护照";
                break;
            case "12":
                birthDay = "警官证";
                break;
            case "13":
                birthDay = "香港居民身份证";
                break;
            case "14":
                birthDay = "澳门居民身份证";
                break;
            case "15":
                birthDay = "台湾居民身份证";
                break;
            case "16":
                birthDay = "外国身份证";
                break;
            case "17":
                birthDay = "台湾居民往来大陆通行证";
                break;
            case "18":
                birthDay = "重号居民身份证";
                break;
            case "19":
                birthDay = "临时居民身份证";
                break;
            case "20":
                birthDay = "港澳居民往来内地通行证";
                break;
            case "21":
                birthDay = "军人身份证件";
                break;
            case "22":
                birthDay = "武警身份证件";
                break;
            case "23":
                birthDay = "外国人居留证";
                break;
            case "24":
                birthDay = "异常身份证";
                break;
            case "25":
                birthDay = "出生医学证明";
                break;
            case "26":
                birthDay = "外国人永久居留身份证";
                break;
            case "96":
                birthDay = "港澳居民居住证";
                break;
            case "98":
                birthDay = "台湾居民居住证";
                break;
            default:
                birthDay = "其他证件";
                break;
        }
        return birthDay;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓦然回首的风度

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值