Ну, стандартный способ разбора дат - SimpleDateFormat
. Но я не думаю, что это поможет вам, поэтому я не пойду туда.
Но вы должны использовать объекты Date (или, как другие скажут: используйте объект DateTime JodaTime), когда вы говорите о датах, это упрощает задачу.
делает Date
тип dob
и обменяйте этот код:
String dob = d + m + y;
для этого:
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, Integer.parseInt(y));
cal.set(Calendar.MONTH, Integer.parseInt(m)-1);
cal.set(Calendar.DATE, Integer.parseInt(d));
Date dob = cal.getTime();
(вы должны потерять все вещи if (m.length() == 1)
, потому что строки с начальными нулями будут анализироваться как восьмеричные значения)
Теперь вы можете просто подтвердить, что parentBirthDate.compareTo(childBirthDate)>0
Также, чтобы быть более точным, вы должны усечь все поля, которые меньше, чем день:
cal.set(Calendar.HOUR, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
Также: не используйте System.out.println()
, используйте каркас журналирования, такой как Log4J или SLF4J.
Да, кстати, подтверждения того, что ребенок младше родителя, будет недостаточно. Вам, вероятно, придется подтвердить, что разница составляет 12 лет и более: -)