Non è necessario eseguire calcoli a mano.
È possibile regolare una data specifica con un regolatore con il metodo LocalDateTime.with(adjuster)
. V'è un built-in di regolazione per il giorno successivo della settimana: TemporalAdjusters.next(dayOfWeek)
:
Restituisce la successiva regolazione giorno della settimana, che regola la data per la prima occorrenza del specificato giorno della settimana dopo la data viene regolata.
public static void main(String[] args) {
LocalDateTime dateTime = LocalDateTime.now();
LocalDateTime nextMonday = dateTime.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
System.out.println(nextMonday);
}
Questo codice restituirà il prossimo lunedi in base alla data corrente.
Utilizzando le importazioni statiche, questo rende il codice più facile da leggere:
LocalDateTime nextMonday = dateTime.with(next(MONDAY));
si noti che se la data corrente è già su un Lunedi, questo codice tornerà il prossimo lunedi (cioè il lunedi dalla prossima settimana). Se si desidera mantenere la data corrente in quel caso, è possibile utilizzare nextOrSame(dayOfWeek)
.
Vorrei raccomandare: https://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html – Fincio
@Fincio Certamente no. – Tunaki
LocalDateTime \t plusWeeks (settimane lunghe)? – Fincio