Java:
将来または過去の日付を計算する
How to: (やり方)
Javaで未来の日付を計算するのは簡単。LocalDate
とPeriod
クラスを使おう。パスト日付も似たり寄ったり。見てみよう:
import java.time.LocalDate;
import java.time.Period;
public class DateCalculator {
public static void main(String[] args) {
LocalDate now = LocalDate.now();
// 未来の日付を計算
LocalDate futureDate = now.plus(Period.ofDays(10));
System.out.println("10日後の日付: " + futureDate);
// 過去の日付を計算
LocalDate pastDate = now.minus(Period.ofDays(10));
System.out.println("10日前の日付: " + pastDate);
}
}
サンプル出力:
10日後の日付: 2023-04-21
10日前の日付: 2023-03-31
now.plus()
とnow.minus()
を使って日付の加算、減算ができる。期間はPeriod
クラスで定義。
Deep Dive (掘り下げ)
Javaでの日付操作はずっと進化している。java.util.Date
が始まりだったけど、問題点多数。Java 8以降ではjava.time
パッケージが導入され、LocalDate
、LocalTime
、LocalDateTime
など、使いやすく正確な日付処理クラスが提供されている。
選択肢は他にもある。Joda-Timeライブラリなんかが前は人気だったけど、今はjava.time
の方がスタンダード。便利なので外部ライブラリに頼る必要は減った。
実装の詳細に入ると、タイムゾーンの考慮が重要になることがある。ZonedDateTime
クラスでタイムゾーン付きの日付時刻を扱える。また、日付の差分を計算する際はDuration
クラスを使うと時間や分単位での精密な計算が可能。
See Also (関連情報)
Javaと日付操作は深い関係にある。上記リンクでさらに学べる。コードを書いてみて、日付計算のプロになろう。