如何只有6位数时确定年龄

时间:2016-03-04 09:43:33

标签: android

我试图从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;
    }

非常感谢任何建议!

1 个答案:

答案 0 :(得分:0)

我建议您使用SimpleDateFormat:

使用这种格式,您应该在大多数时间正确地解析日期,因为只有2位数字无法正确识别年份:

ddMMyy

如果是8位数:

ddMMyyyy