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

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

思路:一、如今都是二代身份证18位。code

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

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

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

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:若是对你有帮助,请给一下评价,让我感受到我写的价值。string

相关文章
相关标签/搜索