我试图从DOB中获取年龄,但我目前使用的方法需要8位数:26091964。这会返回良好的结果。
但我获得的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;
}
非常感谢任何建议!
答案 0 :(得分:0)