Jeden z naszych klientów chce wprowadzić datę zawierającą tylko 2 cyfry dla komponentu roku. Data będzie przeszłością, więc chcemy, aby działała ona w poprzednim stuleciu, jeśli dwuletni rok jest po bieżącym roku, ale działa na obecny wiek, jeśli dwuletni rok jest równy lub mniejszy niż rok bieżący.Jaki jest najlepszy sposób na przeanalizowanie daty w formacie MM/DD/RR i dostosowanie jej do obecnego/minionego wieku?
dzień dzisiejszy 10/30/2008
01/01/01 = 01/01/2001
01/01/09 = 01/01/1909
To dziwne wymaganie, i rozwiązałem problem, po prostu nie podoba mi się moje rozwiązanie. Wydaje się, że jest lepszy sposób na zrobienie tego.
Dzięki za pomoc.
public static String stupidDate(String dateString)
{
String twoDigitYear = StringUtils.right(dateString, 2);
String newDate = StringUtils.left(dateString, dateString.length() - 2);
int year = NumberUtils.toInt(twoDigitYear);
Calendar c = GregorianCalendar.getInstance();
int centuryInt = c.get(Calendar.YEAR) - year;
newDate = newDate + StringUtils.left(Integer.toString(centuryInt), 2) + twoDigitYear;
return newDate;
}
To prawie dokładnie to, co zrobiłem! Łatwo to przetłumaczyć na java. Dzięki! – ScArcher2