次の月曜日などの日付/時刻にLocalDateTime
のインスタンスを作成したいとします。与えられた曜日の次のLocalDateTimeを取得する
Java Time APIにはメソッドがありますか、現在の日付とあて先の日付の間に何日か計算してからLocalDateTime.of()メソッドを使用する必要がありますか?
次の月曜日などの日付/時刻にLocalDateTime
のインスタンスを作成したいとします。与えられた曜日の次のLocalDateTimeを取得する
Java Time APIにはメソッドがありますか、現在の日付とあて先の日付の間に何日か計算してからLocalDateTime.of()メソッドを使用する必要がありますか?
手で計算する必要はありません。
LocalDateTime.with(adjuster)
のアジャスターで、指定した日付を調整することができます。ビルトインアジャスター週の次の日のためにあります:TemporalAdjusters.next(dayOfWeek)
:
は、指定した曜日の後の最初の発生に日付を調整し、次の曜日調整を返します日付は調整されます。
public static void main(String[] args) {
LocalDateTime dateTime = LocalDateTime.now();
LocalDateTime nextMonday = dateTime.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
System.out.println(nextMonday);
}
このコードは、現在の日付に基づいて次月曜日が返されます。これは読みのコードが容易になり、静的な輸入品を使用して
:
LocalDateTime nextMonday = dateTime.with(next(MONDAY));
は、現在の日付が月曜日にすでにある場合、このコードは次月曜日(つまり、月曜日が返されることに注意してください。来週から)。この場合、現在の日付を保持する場合は、nextOrSame(dayOfWeek)
を使用できます。
私はお勧めします:https://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html – Fincio
@Fincio確かにそうではありません。 – Tunaki
LocalDateTime \t plusWeeks(長い週)? – Fincio