【Java】LocalDateクラスで日付の期間を計算する方法

【Java】LocalDateクラスで日付の期間を計算する方法プログラミングの知識
プログラミングの知識

今回はLocalDateクラス日付の期間を計算する方法について紹介します。

スポンサーリンク

Periodクラスで日付の期間を計算する方法

Periodクラスbetweenメソッドを使うことで2つの日付の期間を計算することができます。betweenメソッドは以下の様に記述します。

// betweenメソッドの記述例
Period 変数 = Period.between(変数1, 変数2);

変数に変数1と変数2の期間を代入しています。

また、getメソッドによって年、月、日を取り出すことができます。getメソッドgetYears/getMounths/getDaysメソッドが存在します。

  • サンプルコード
import java.time.LocalDate;
import java.time.Period;

public class LocalDateBetweenTest {
  public static void main(String[] args) {
    LocalDate date1 = LocalDate.of(2020, 1, 1);
    LocalDate date2 = LocalDate.of(2021, 8, 15);
    System.out.println("date1:" + date1);
    System.out.println("date2:" + date2);

    // date1とdate2の期間を取得する
    Period period = Period.between(date1, date2);
    System.out.println("period:" + period);

    // priodを年、月、日に分割して出力する
    System.out.println("periodの年:" + period.getYears());
    System.out.println("periodの月:" + period.getMonths());
    System.out.println("periodの日:" + period.getDays());
  }
}
  • 出力結果
date1:2020-01-01
date2:2021-08-15
period:P1Y7M14D
periodの年:1
periodの月:7
periodの日:14

date1date2の期間が出力されました。

ここで、出力結果の一行目が分かりづらくなっていますが、最初のPを飛ばし、「1Y(年)7M(月)14D(日)」の期間であるという意味を持ちます。

その下はそれぞれgetメソッドで分割して表示しています。

参考文献

スポンサーリンク
Dim雑記