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