[API] java.time.Periodクラス

java.time.Periodは、日数ベースの期間を表現するためのクラスです。

java.time.Periodの特徴

java.time.Periodは以下の特徴があります。

  • Java SE8で導入されたAPI
  • 他のPeriodオブジェクトとの加算、減算が可能
  • 他のPeriodオブジェクトとの大小比較が可能

java.time.Periodの継承・実装

継承クラス

java.lang.Object
 ・java.time.Period

実装インターフェース

java.io.Serializable
・java.time.chrono.ChronoPeriod
・java.time.temporal.TemporalAmount

導入バージョン

・JDK1.8

java.time.PeriodのAPI

【主要定数】
定数説明
PeriodZEROゼロのPeriodを表す定数
【主要メソッド】
戻値型メソッド静的説明
TemporaladdTo(Temporal t)時間的オブジェクトtに期間を加算する
Periodbetween(LocalDate a, LocalDate b)日付aとbからPeriodを取得する
longget(TemporalUnit t)指定した単位の値を取得する
IsoChronologygetChronology()ISO暦体系である暦を取得する
intgetDays()日数を取得する
intgetMonths()月数を取得する
List<TemporalUnit>getUnits()サポートされる一連の単位を取得する
intgetYears()年数を取得する
booleanisZero()Periodがゼロかどうか
Periodminus(TemporalAmount a)指定した期間を減算した結果を返す
PeriodminusDays(long a)指定した日数を減算した結果を返す
PeriodminusMonths(long a)指定した月数を減算した結果を返す
PeriodminusYears(long a)指定した年数を減算した結果を返す
Periodof(int y, int m, int d)年数、月数、日数からPeriodを生成する
PeriodofDays(int d)日数からPeriodを生成する
PeriodofMonths(int d)月数からPeriodを生成する
PeriodofWeeks(int d)週数からPeriodを生成する
PeriodofYears(int d)年数からPeriodを生成する
Periodplus(TemporalAmount a)指定した期間を加算した結果を返す
PeriodplusDays(long a)指定した日数を加算した結果を返す
PeriodplusMonths(long a)指定した月数を加算した結果を返す
PeriodplusYears(long a)指定した年数を加算した結果を返す

java.time.Periodサンプル

(Periodを生成する)

//加算メソッドを使用して生成
Period period = Period.ofYears(5).plusMonths(11).plusDays(12);  //5年11か月12日
System.out.println(period);
→ P5Y11M12D

//数値から生成
Period period = Period.of(2, 3, 4);  //2年3か月4日
System.out.println(period);
→ P2Y3M4D
(2つのLocalDateからPeriodを生成する)

LocalDate d1 = LocalDate.of(2023, 1, 1);   //2023年1月1日
LocalDate d2 = LocalDate.of(2023, 8, 30);  //2023年8月30日
Period p = Period.between(d1, d2);
System.out.println(p);
→ P7M29D

コメント

タイトルとURLをコピーしました