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

JavaのLocalDateクラスで日付の期間を計算する方法について紹介します。
Periodクラスで日付の期間を計算する方法
Periodクラスのbetweenメソッドを使うことで2つの日付の期間を計算することができます。betweenメソッドは以下の様に記述します。
betweenメソッドの記述例
1Period period = Period.between(LocalDate date1, LocalDate date2);変数に変数1と変数2の期間を代入しています。
また、getメソッドによって年・月・日を取り出すことができます。getメソッドはgetYears・getMounths・getDaysメソッドが存在します。
メソッドの使用例
実際に、メソッドの使用例をサンプルコードで示します。
LocalDateBetweenTest.java
1import java.time.LocalDate;
2import java.time.Period;
3
4public class LocalDateBetweenTest {
5 public static void main(String[] args) {
6 LocalDate date1 = LocalDate.of(2020, 1, 1);
7 LocalDate date2 = LocalDate.of(2021, 8, 15);
8 System.out.println("date1:" + date1);
9 System.out.println("date2:" + date2);
10
11 // date1とdate2の期間を取得する
12 Period period = Period.between(date1, date2);
13 System.out.println("period:" + period);
14
15 // priodを年、月、日に分割して出力する
16 System.out.println("periodの年:" + period.getYears());
17 System.out.println("periodの月:" + period.getMonths());
18 System.out.println("periodの日:" + period.getDays());
19 }
20}実行結果が以下になります。
出力結果
1date1:2020-01-01
2date2:2021-08-15
3period:P1Y7M14D
4periodの年:1
5periodの月:7
6periodの日:14date1とdate2の期間が出力されました。
ここで、出力結果の一行目が分かりづらくなっていますが、最初のPを飛ばし、「1Y(年)7M(月)14D(日)」の期間であるという意味を持ちます。
その下はそれぞれgetメソッドで分割して表示しています。