根據身份證號碼來判斷處於兩個年齡之間

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

相關文章
相關標籤/搜索