资讯专栏INFORMATION COLUMN

Java根据身份证获取年龄,性别

_ivan / 1292人阅读

摘要:方法描述根据身份证获取年龄,性别表示女表示男获取系统当前时间

    /**
     * 方法描述: 根据身份证获取年龄,性别
     * 2表示女
     * 1表示男
     * @param idNum
     * @return
     * String[]
     * @author  husheng
     */
    public static String[] getAgeAndSexById(String idNum) {
        String age = "";
        String sex = "";
        GregorianCalendar calendar = new GregorianCalendar(TimeZone.getDefault());//获取系统当前时间
        int currentYear = calendar.get(Calendar.YEAR);
        if (idNum.matches("^d{15}$|^d{17}[dxX]$")) {
            if (idNum.length() == 18) {
                Pattern pattern = Pattern.compile("d{6}(d{4})d{6}(d{1})[dxX]{1}");
                Matcher matcher = pattern.matcher(idNum);
                if (matcher.matches()) {
                    
                    age = String.valueOf(currentYear - Integer.parseInt(matcher.group(1)));
                    sex = "" + Integer.parseInt(matcher.group(2))%2;
                }
            } else if (idNum.length() == 15) {
                Pattern p = Pattern.compile("d{6}(d{2})d{5}(d{1})d{1}");
                Matcher m = p.matcher(idNum);
                if (m.matches()) {
                    int year = Integer.parseInt(m.group(1));
                    year = 2000 + year;
                    if (year > 2020) {
                        year = year - 100;
                    }
                    age = String.valueOf(currentYear - year);
                    sex = "" + Integer.parseInt(m.group(2))%2;
                }
            }
        }
        if ("0".equals(sex)) {
            sex = "2";
        }
        return new String[]{age, sex};
    }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/66805.html

相关文章

  • 尝试用数组写一个学生信息管理系统

    摘要:这只是我尝试做的一个简单的程序,顺便复习下语言,希望以后的自己能更加努力,努力跟随大佬们的脚步。 这只是我尝试做的一个简单的程序,顺便复习下C语言,希望以后的自己能更加努力,努力跟随大佬们的脚步。 C语言学生信息管理系统包括以下功能: 1.添加学生信息 2.查询学生信息 3.修改学生信息 4...

    wangshijun 评论0 收藏0
  • 构造器还是构建器?

    摘要:更多关于的文章请戳这里您的留言意见是对我最大的支持我的文章列表 在实例化一个类的过程中,通常会遇到多个参数的构造函数,但如果有些参数是非必需的呢?每次都要初始化那么多参数么? public class Person { private int id;//身份证号 private String name;//姓名 private int age;//年龄 ...

    muzhuyu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<