根据身份证号码来判断处于两个年龄之间

1、业务需求 要筛选出注册年龄处于18-35周岁的用户

思路:1、现在都是二代身份证18位。

2、拿到截取6-18位拿到年月日。

3、获取当前系统时间转化成Date分别减去18年、35年,计算出时间区域。

4、判断用户是否处于时间区域

public static boolean validateIDCARD(String IdNO)
    {
        String birthday = "";
        Date birthdate;
        Date birthdateMax;
        Date birthdateMin;
        Boolean flag = false;
        try
        {
            birthday = IdNO.substring(6, 14);
            birthdate = new SimpleDateFormat("yyyyMMdd").parse(birthday);
            
            Calendar calMax = new GregorianCalendar();
            Calendar calMin = new GregorianCalendar();
            calMax.setTime(new Date());
            calMax.add(Calendar.YEAR, -18);  // 离得最近的年月份
            calMin.setTime(new Date());
            calMin.add(Calendar.YEAR, -35);  // 离得最远的年月份
            
            SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
            
            String nownowMax = df.format(calMax.getTime());
            String nownowMin = df.format(calMin.getTime());
            
            birthdateMax = df.parse(nownowMax);
            birthdateMin = df.parse(nownowMin);
            flag = birthdate.after(birthdateMin) && birthdate.before(birthdateMax);
        }
        catch(ParseException e)
        {
            e.printStackTrace();
        }
        
        return flag;
        
    }

 PS:如果对你有帮助,请给一下评价,让我感觉到我写的价值。

posted @ 2017-03-06 13:29  骑着蜗牛的IT  阅读(436)  评论(0编辑  收藏  举报