2016-03-04 20 views
0

我試圖從DOB獲得年齡,但目前使用的方法需要8位數字:26091964.這會返回良好結果。如何確定只有6位數字的年齡

但我得到的DOB數據只包含6位數字(來自護照MRZ:260964)。我如何從這個確定年齡?

這是我到目前爲止有:

public Integer ageChecker(String dateOfBirth) { 
     if (dateOfBirth.length() == 6) { 
      if (StringUtils.isNumeric(dateOfBirth)) { 
       String year = dateOfBirth.substring(0, 2); 
       String month = dateOfBirth.substring(2, 4); 
       String day = dateOfBirth.substring(4, 6); 


       int dag = Integer.parseInt(day); 
       int maand = Integer.parseInt(month); 
       int jaar = Integer.parseInt(year); 

       Calendar dob = Calendar.getInstance(); 
       Calendar today = Calendar.getInstance(); 

       dob.set(jaar, maand, dag); 

       int age = today.get(Calendar.YEAR) - dob.get(Calendar.YEAR); 

       if (today.get(Calendar.DAY_OF_YEAR) < dob.get(Calendar.DAY_OF_YEAR)) { 
        age--; 
       } 

       Integer ageInt = new Integer(age); 
        return ageInt; 
      } 
     } 
     return null; 
    } 

任何意見將非常感謝!

+1

只有6個字母,如果假設dob是010115,您將如何識別年齡。它可以是1年或101年? –

回答

0

我建議你使用SimpleDateFormat:

有了這種格式,你應該正確解析您的日期大部分時間,因爲今年無法得到妥善的只有2位鑑定:

ddMMyy 

在8案例數字:

ddMMyyyy