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
型 | 定数 | 説明 |
---|---|---|
Period | ZERO | ゼロのPeriodを表す定数 |
戻値型 | メソッド | 静的 | 説明 |
---|---|---|---|
Temporal | addTo(Temporal t) | 時間的オブジェクトtに期間を加算する | |
Period | between(LocalDate a, LocalDate b) | 〇 | 日付aとbからPeriodを取得する |
long | get(TemporalUnit t) | 指定した単位の値を取得する | |
IsoChronology | getChronology() | ISO暦体系である暦を取得する | |
int | getDays() | 日数を取得する | |
int | getMonths() | 月数を取得する | |
List<TemporalUnit> | getUnits() | サポートされる一連の単位を取得する | |
int | getYears() | 年数を取得する | |
boolean | isZero() | Periodがゼロかどうか | |
Period | minus(TemporalAmount a) | 指定した期間を減算した結果を返す | |
Period | minusDays(long a) | 指定した日数を減算した結果を返す | |
Period | minusMonths(long a) | 指定した月数を減算した結果を返す | |
Period | minusYears(long a) | 指定した年数を減算した結果を返す | |
Period | of(int y, int m, int d) | 〇 | 年数、月数、日数からPeriodを生成する |
Period | ofDays(int d) | 〇 | 日数からPeriodを生成する |
Period | ofMonths(int d) | 〇 | 月数からPeriodを生成する |
Period | ofWeeks(int d) | 〇 | 週数からPeriodを生成する |
Period | ofYears(int d) | 〇 | 年数からPeriodを生成する |
Period | plus(TemporalAmount a) | 指定した期間を加算した結果を返す | |
Period | plusDays(long a) | 指定した日数を加算した結果を返す | |
Period | plusMonths(long a) | 指定した月数を加算した結果を返す | |
Period | plusYears(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
コメント