Jak uzyskać następny piątek z interfejsem API Joda-Time.Czas: Jak zdobyć kolejny piątek?
Dzisiejsza LocalDate
to today
. Wygląda na to, że musisz zdecydować, gdzie jesteś przed lub po piątku bieżącego tygodnia. Zobacz tę metodę:
private LocalDate calcNextFriday(LocalDate d) {
LocalDate friday = d.dayOfWeek().setCopy(5);
if (d.isBefore(friday)) {
return d.dayOfWeek().setCopy(5);
} else {
return d.plusWeeks(1).dayOfWeek().setCopy(5);
}
}
Czy można zrobić to krócej lub z onelinerem?
PS: Proszę nie informuj mnie o stosowaniu daty/czasu JDKs. Joda-Time to znacznie lepszy interfejs API.
Java 8 wprowadza pakiet java.time (Tutorial), który jest jeszcze lepszy.
dobre pytanie ... 'DateTime' przydałoby się' rollForwardTo (...) 'metoda – skaffman
@skaffman Zobacz mój rodzajowego ROLLFORWARD odpowiedź. Nie jest testowany przez super-duperów, ale wydaje się, że działa dla mnie. –
W rzeczywistości java.time jest * niekoniecznie lepsze niż [Joda-Time] (http://www.joda.org/joda-time/). Każdy ma funkcje innych braków. Na przykład java.time nie ma klasy "' Interval' "(http://www.joda.org/joda-time/apidocs/org/joda/time/Interval.html) znalezionej w Joda-Time. Więc używaj ich dla swoich mocnych stron. Możesz łączyć ze sobą w ramach projektu. Po prostu zachowaj ostrożność w instrukcjach 'import', ponieważ niektóre z ich klas mają tę samą nazwę. –