Mam 2 Joda LocalDateTime
obiektów i trzeba produkować 3rd, który reprezentuje różnicę między nimi:różnica dwóch Joda LocalDateTimes
LocalDateTime start = getStartLocalDateTime();
LocalDateTime end = getEndLocalDateTime();
LocalDateTime diff = ???
Jedynym sposobem mogę zorientować ma skrupulatnie przejść przez każdy dzień/pole czas i wykonuje swoją pracę odpowiednie minus
:
LocalDateTime diff = end;
diff.minusYears(start.getYear());
diff.minusMonths(start.getMonthOfYear());
diff.minusDays(start.getDayOfMonth());
diff.minusHours(start.getHourOfDay());
diff.minusMinutes(start.getMinuteOfHour());
diff.minusSeconds(start.getSecondsOfMinute());
Końcowym rezultatem byłoby po prostu zadzwonić diff
„s toString()
sposób i dostać coś sensownego. Na przykład, jeśli start.toString()
produkuje 2012/02/08T15: 05: 00, a end.toString()
produkuje 2012/02/08T16: 00: 00, wtedy diff.toString()
będzie różnica (55 minut) i może wyglądać 2012/02/08T00: 55: 00.
A jeśli to jest okropne nadużycie LocalDateTime
, to po prostu muszę wiedzieć, jak wziąć różnicę czasu między tymi dwoma i umieścić tę różnicę w łatwym do odczytania (ludzkim przyjaznym) formacie.
Z góry dziękuję!
Lubię Joda, ale zawsze jestem przytłoczony. 'Period' i' Duration', brzmi podobnie, ale jest całkiem inny. Widzę potrzebę, ale nie zawsze jest intuicyjna. –
@MPi: Zgoda. Co to jest "Readable Partial"? Dlaczego potrzebuję go, aby sprawdzić, czy 'LocalDateTime' był jakiś czas temu? Agh! –
Ponieważ okres może być niezdefiniowanym czasem bezwzględnym. Na przykład okres między 14:35 a 15:36, który jest "PartialReadable" time of day, zawsze będzie wynosił 1 godzinę i 1 minutę. –