一、業務需求 要篩選出註冊年齡處於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