将来または過去の日付を計算する

Java:
将来または過去の日付を計算する

How to: (やり方)

Javaで未来の日付を計算するのは簡単。LocalDatePeriodクラスを使おう。パスト日付も似たり寄ったり。見てみよう:

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パッケージが導入され、LocalDateLocalTimeLocalDateTimeなど、使いやすく正確な日付処理クラスが提供されている。

選択肢は他にもある。Joda-Timeライブラリなんかが前は人気だったけど、今はjava.timeの方がスタンダード。便利なので外部ライブラリに頼る必要は減った。

実装の詳細に入ると、タイムゾーンの考慮が重要になることがある。ZonedDateTimeクラスでタイムゾーン付きの日付時刻を扱える。また、日付の差分を計算する際はDurationクラスを使うと時間や分単位での精密な計算が可能。

See Also (関連情報)

Javaと日付操作は深い関係にある。上記リンクでさらに学べる。コードを書いてみて、日付計算のプロになろう。