Używam biblioteki Joda Time 2.1.Inclusive Data Range check w Czasie Jody
Napisałem metodę porównywania, jeśli dana data mieści się w przedziale dat nie. Chcę, aby było włączone do daty rozpoczęcia i zakończenia. Użyłem LocalDate
, ponieważ nie chcę brać pod uwagę części daty tylko część czasu.
Poniżej znajduje się kod.
isDateBetweenRange(LocalDate start,LocalDate end,LocalDate target){
System.out.println("Start Date : "
+start.toDateTimeAtStartOfDay(DateTimeZone.forID("EST"));
System.out.println("Target Date : "
+targettoDateTimeAtStartOfDay(DateTimeZone.forID("EST"));
System.out.println("End Date : "
+end.toDateTimeAtStartOfDay(DateTimeZone.forID("EST"));
System.out.println(target.isAfter(start));
System.out.println(target.isBefore(end));
}
Wyjście z powyższej metody jest:
Start Date: 2012-11-20T00:00:00.000-05:00
Target Date: 2012-11-20T00:00:00.000-05:00
End Date : 2012-11-21T00:00:00.000-05:00
target.isAfter(start) : false
target.isBefore(end) : true
Mój problem jest target.isAfter(start)
jest fałszywe, nawet jeśli data target
i start
mają te same wartości.
Chcę tego target >= start
, ale tutaj to tylko target > start
.
Chcę to zawierać.
Czy to oznacza, że metoda isAfter
znajduje wyłącznie odpowiednik?
Przeszedłem przez javadoc dla Joda Time, ale nic nie znalazłem.
Sprawdź moją odpowiedź w podobnym wątku, aby odstępie LocalDates: http://stackoverflow.com/a/14998753/1367432 –