モジュール java.base
パッケージ java.time

クラスYear

  • すべての実装されたインタフェース:
    Serializable, Comparable<Year>, Temporal, TemporalAccessor, TemporalAdjuster

    public final class Year
    extends Object
    implements Temporal, TemporalAdjuster, Comparable<Year>, Serializable
    ISO-8601暦体系における年(2007など)。

    Yearは、年を表す不変の日付/時間オブジェクトです。 年から生成できるすべてのフィールドを取得できます。

    ISO暦における年は、現代のグレゴリオ/ユリウス暦体系における年にしか適合しないことに注意してください。 ロシアの一部では、1920年まで現代のグレゴリオ/ISOのルールに切換えていませんでした。 このため、歴史的な年の取り扱いには注意が必要です。

    このクラスでは、月、日、時間、またはタイムゾーンを格納したり表現したりしません。 たとえば、「2007」という値をYearに格納できます。

    このクラスで表される年はISO-8601標準に準拠し、先発番号付け方式を採用しています。 1年の前に0年があり、0年の前に-1年があります。

    ISO-8601暦体系は、世界中の大部分で現在使われている近代の常用暦体系です。 これは、現在のうるう年のルールがすべての時間に適用される、先発グレゴリオ暦体系と同等です。 今日作成されているほとんどのアプリケーションには、ISO-8601のルールが完全に適しています。 ただし、歴史的な日付を使用し、それらが正確であることを必要とするアプリケーションには、ISO-8601の方法が適さないことがわかります。

    これは値ベースのクラスです。Yearのインスタンスに対して、アイデンティティの影響を受けやすい操作(参照型等価演算子(==)、アイデンティティ・ハッシュ・コード、同期化など)を使用すると、予測できない結果が生じることがあるため、使わないようにしてください。 比較する場合は、equalsメソッドを使用することをお薦めします。

    実装要件:
    このクラスは不変でスレッドセーフです。
    導入されたバージョン:
    1.8
    関連項目:
    直列化された形式
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      static int MAX_VALUE
      サポートされている最大の年である「+999,999,999」です。
      static int MIN_VALUE
      サポートされている最小の年である「-999,999,999」です。
    • メソッドのサマリー

      すべてのメソッド staticメソッド インスタンス・メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      Temporal adjustInto​(Temporal temporal)
      指定された時間的オブジェクトをこの年になるように調整します。
      LocalDate atDay​(int dayOfYear)
      この年を「年の日」と組み合せてLocalDateを作成します。
      YearMonth atMonth​(int month)
      この年を月と組み合せてYearMonthを作成します。
      YearMonth atMonth​(Month month)
      この年を月と組み合せてYearMonthを作成します。
      LocalDate atMonthDay​(MonthDay monthDay)
      この年を月-日と組み合せてLocalDateを作成します。
      int compareTo​(Year other)
      この年をもう一方の年と比較します。
      boolean equals​(Object obj)
      この年がもう一方の年と等しいかどうかを確認します。
      String format​(DateTimeFormatter formatter)
      指定されたフォーマッタを使用してこの年を書式設定します。
      static Year from​(TemporalAccessor temporal)
      時間的オブジェクトからYearのインスタンスを取得します。
      int get​(TemporalField field)
      この年から指定されたフィールドの値をintとして取得します。
      long getLong​(TemporalField field)
      この年から指定されたフィールドの値をlongとして取得します。
      int getValue()
      年の値を取得します。
      int hashCode()
      この年のハッシュ・コードです。
      boolean isAfter​(Year other)
      この年が、指定された年より後にあるかどうかをチェックします。
      boolean isBefore​(Year other)
      この年が、指定された年より前にあるかどうかをチェックします。
      boolean isLeap()
      ISO先発暦体系のルールに従って、年がうるう年であるかどうかをチェックします。
      static boolean isLeap​(long year)
      ISO先発暦体系のルールに従って、年がうるう年であるかどうかをチェックします。
      boolean isSupported​(TemporalField field)
      指定されたフィールドがサポートされているかどうかをチェックします。
      boolean isSupported​(TemporalUnit unit)
      指定された単位がサポートされているかどうかをチェックします。
      boolean isValidMonthDay​(MonthDay monthDay)
      月-日がこの年に対して有効であるかどうかを確認します。
      int length()
      この年の長さを日数で取得します。
      Year minus​(long amountToSubtract, TemporalUnit unit)
      指定された量を減算して、この年のコピーを返します。
      Year minus​(TemporalAmount amountToSubtract)
      指定された量を減算して、この年のコピーを返します。
      Year minusYears​(long yearsToSubtract)
      指定された年数を減算して、このYearのコピーを返します。
      static Year now()
      デフォルトのタイムゾーンのシステム・クロックから現在の年を取得します。
      static Year now​(Clock clock)
      指定されたクロックから現在の年を取得します。
      static Year now​(ZoneId zone)
      指定されたタイムゾーンのシステム・クロックから現在の年を取得します。
      static Year of​(int isoYear)
      Yearのインスタンスを取得します。
      static Year parse​(CharSequence text)
      2007などのテキスト文字列からYearのインスタンスを取得します。
      static Year parse​(CharSequence text, DateTimeFormatter formatter)
      特定のフォーマッタを使用して、テキスト文字列からYearのインスタンスを取得します。
      Year plus​(long amountToAdd, TemporalUnit unit)
      指定された量を加算して、この年のコピーを返します。
      Year plus​(TemporalAmount amountToAdd)
      指定された量を加算して、この年のコピーを返します。
      Year plusYears​(long yearsToAdd)
      指定された年数を加算して、このYearのコピーを返します。
      <R> R query​(TemporalQuery<R> query)
      指定された問合せを使用してこの年を問い合せます。
      ValueRange range​(TemporalField field)
      指定されたフィールドの有効な値の範囲を取得します。
      String toString()
      この年をStringとして出力します。
      long until​(Temporal endExclusive, TemporalUnit unit)
      別の年までの時間量を指定された単位で計算します。
      Year with​(TemporalAdjuster adjuster)
      この年の調整済のコピーを返します。
      Year with​(TemporalField field, long newValue)
      指定されたフィールドを新しい値に設定して、この年のコピーを返します。
    • フィールドの詳細

      • MIN_VALUE

        public static final int MIN_VALUE
        サポートされている最小の年である「-999,999,999」です。
        関連項目:
        定数フィールド値
      • MAX_VALUE

        public static final int MAX_VALUE
        サポートされている最大の年である「+999,999,999」です。
        関連項目:
        定数フィールド値
    • メソッドの詳細

      • now

        public static Year now()
        デフォルトのタイムゾーンのシステム・クロックから現在の年を取得します。

        これは、デフォルトのタイムゾーンのシステム・クロックを問い合わせて、現在の年を取得します。

        このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。

        戻り値:
        システム・クロックとデフォルトのタイムゾーンを使用した現在の年。null以外
      • now

        public static Year now​(ZoneId zone)
        指定されたタイムゾーンのシステム・クロックから現在の年を取得します。

        これは、システム・クロックを問い合わせて現在の年を取得します。 タイムゾーンを指定すると、デフォルトのタイムゾーンへの依存を避けられます。

        このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。

        パラメータ:
        zone - 使用するゾーンID、null以外
        戻り値:
        システム・クロックを使用した現在の年。null以外
      • now

        public static Year now​(Clock clock)
        指定されたクロックから現在の年を取得します。

        これは、指定されたクロックを問い合わせて現在の年を取得します。 このメソッドを使用すると、テストに代替のクロックを使用できます。 代替のクロックはdependency injectionを使用して導入できます。

        パラメータ:
        clock - 使用するクロック、null以外
        戻り値:
        現在の年。null以外
      • of

        public static Year of​(int isoYear)
        Yearのインスタンスを取得します。

        このメソッドは、先発ISO暦体系から年の値を受け入れます。

        2AD/CE年は2で表されます。
        1AD/CE年は1で表されます。

        1BC/BCE年は0で表されます。

        2BC/BCE年は-1で表されます。

        パラメータ:
        isoYear - 表されるISO先発年(MIN_VALUEからMAX_VALUEまで)
        戻り値:
        年。null以外
        例外:
        DateTimeException - そのフィールドが無効である場合
      • from

        public static Year from​(TemporalAccessor temporal)
        時間的オブジェクトからYearのインスタンスを取得します。

        これは、指定された時間的オブジェクトに基づいて年を取得します。 TemporalAccessorは任意の日付と時間のセットに関する情報を表し、それがこのファクトリでYearのインスタンスに変換されます。

        この変換では、yearフィールドを抽出します。 この抽出が許可されるのは、時間的オブジェクトにISOの暦が含まれているか、そのオブジェクトをLocalDateに変換できる場合にかぎられます。

        このメソッドは関数型インタフェースTemporalQueryのシグネチャに一致するため、メソッド参照Year::fromを介して、問合せとして使用できます。

        パラメータ:
        temporal - 変換する一時オブジェクト、null以外
        戻り値:
        年。null以外
        例外:
        DateTimeException - Yearに変換できない場合
      • parse

        public static Year parse​(CharSequence text)
        2007などのテキスト文字列からYearのインスタンスを取得します。

        この文字列は有効な年を表している必要があります。 0000-9999の範囲外にある年の前には、プラスまたはマイナス記号を付ける必要があります。

        パラメータ:
        text - 「2007」などの解析対象のテキスト。null以外
        戻り値:
        解析された年。null以外
        例外:
        DateTimeParseException - テキストが解析できない場合
      • parse

        public static Year parse​(CharSequence text,
                                 DateTimeFormatter formatter)
        特定のフォーマッタを使用して、テキスト文字列からYearのインスタンスを取得します。

        そのテキストがフォーマッタを使って解析され、年が返されます。

        パラメータ:
        text - 解析するテキスト。null以外
        formatter - 使用するフォーマッタ、null以外
        戻り値:
        解析された年。null以外
        例外:
        DateTimeParseException - テキストが解析できない場合
      • isLeap

        public static boolean isLeap​(long year)
        ISO先発暦体系のルールに従って、年がうるう年であるかどうかをチェックします。

        このメソッドは、時系列全体にわたって、うるう年の現在のルールを適用します。 一般に、年は4で割り切れる場合にうるう年です。 ただし、400で割り切れる年を除き、100で割り切れる年はうるう年ではありません。

        たとえば、1904年は4で割り切れるうるう年です。1900年は100で割り切れるため、うるう年ではありませんでしたが、2000年は400で割り切れるため、うるう年でした。

        計算は先発暦で、遠い将来および遠い過去にも同じルールが適用されます。 これは歴史的には正確ではありませんが、ISO-8601規格には正確です。

        パラメータ:
        year - チェック対象の年
        戻り値:
        年がうるう年の場合はtrue、それ以外の場合はfalse
      • getValue

        public int getValue()
        年の値を取得します。

        このメソッドで返される年は、get(YEAR)のように予期的なものです。

        戻り値:
        年(MIN_VALUEからMAX_VALUEまで)
      • isSupported

        public boolean isSupported​(TemporalField field)
        指定されたフィールドがサポートされているかどうかをチェックします。

        これは、指定されたフィールドをこの年に問い合わせることができるかどうかを確認します。 falseの場合、rangeget、およびwith(TemporalField, long)メソッドの呼び出しは、例外をスローします。

        フィールドがChronoFieldの場合、ここに問合せを実装します。 サポートされるフィールドは、次のとおりです。

        • YEAR_OF_ERA
        • YEAR
        • ERA
        他のすべてのChronoFieldインスタンスはfalseを返します。

        フィールドがChronoFieldでない場合、このメソッドの結果は、thisを引数として渡してTemporalField.isSupportedBy(TemporalAccessor)を呼び出すことによって取得します。 フィールドがサポートされているかどうかはフィールドによって決定します。

        定義:
        インタフェースTemporalAccessorisSupported
        パラメータ:
        field - チェックするフィールド、nullはfalseを返す
        戻り値:
        フィールドがこの年でサポートされている場合はtrue、サポートされていない場合はfalse
      • isSupported

        public boolean isSupported​(TemporalUnit unit)
        指定された単位がサポートされているかどうかをチェックします。

        これは、指定された単位をこの年に対して加算または減算できるかどうかをチェックします。 falseの場合、plus(long, TemporalUnit)およびminusメソッドの呼び出しは、例外をスローします。

        単位がChronoUnitの場合、問合せはここで実装されます。 サポートされる単位は次のとおりです。

        • YEARS
        • DECADES
        • CENTURIES
        • MILLENNIA
        • ERAS
        他のすべてのChronoUnitインスタンスはfalseを返します。

        単位がChronoUnitでない場合、このメソッドの結果は、thisを引数として渡してTemporalUnit.isSupportedBy(Temporal)を呼び出すことによって取得します。 単位がサポートされているかどうかは単位によって決定します。

        定義:
        インタフェースTemporalisSupported
        パラメータ:
        unit - チェックする単位、nullはfalseを返す
        戻り値:
        単位を加算/減算できる場合はtrue、できない場合はfalse
      • range

        public ValueRange range​(TemporalField field)
        指定されたフィールドの有効な値の範囲を取得します。

        範囲オブジェクトはフィールドの有効な最小値と最大値を表します。 この年は、返される範囲の精度を高めるために使用されます。 範囲を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。

        フィールドがChronoFieldの場合、ここに問合せを実装します。 サポートされるフィールドは適切な範囲のインスタンスを返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。

        フィールドがChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.rangeRefinedBy(TemporalAccessor)を呼び出すことにより取得されます。 範囲を取得できるかどうかはフィールドによって決まります。

        定義:
        インタフェースTemporalAccessorrange
        パラメータ:
        field - 範囲を問い合わせるフィールド、null以外
        戻り値:
        フィールドの有効値の範囲。null以外
        例外:
        DateTimeException - フィールドの範囲を取得できない場合
        UnsupportedTemporalTypeException - フィールドがサポートされていない場合
      • get

        public int get​(TemporalField field)
        この年から指定されたフィールドの値をintとして取得します。

        これは、指定されたフィールドの値についてこの年に問い合せます。 返される値は常にフィールドの値の有効な範囲内になります。 値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。

        フィールドがChronoFieldの場合、ここに問合せを実装します。 サポートされているフィールドは、この年に基づいて有効な値を返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。

        フィールドがChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。 値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。

        定義:
        インタフェースTemporalAccessorget
        パラメータ:
        field - 取得するフィールド、null以外
        戻り値:
        フィールドの値
        例外:
        DateTimeException - フィールドの値を取得できない場合、または値がフィールドの有効な値の範囲外の場合
        UnsupportedTemporalTypeException - フィールドがサポートされていない場合、または値の範囲がintを超えている場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • getLong

        public long getLong​(TemporalField field)
        この年から指定されたフィールドの値をlongとして取得します。

        これは、指定されたフィールドの値についてこの年に問い合せます。 値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。

        フィールドがChronoFieldの場合、ここに問合せを実装します。 サポートされているフィールドは、この年に基づいて有効な値を返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。

        フィールドがChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。 値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。

        定義:
        インタフェースTemporalAccessorgetLong
        パラメータ:
        field - 取得するフィールド、null以外
        戻り値:
        フィールドの値
        例外:
        DateTimeException - フィールドの値を取得できない場合
        UnsupportedTemporalTypeException - フィールドがサポートされていない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • isLeap

        public boolean isLeap()
        ISO先発暦体系のルールに従って、年がうるう年であるかどうかをチェックします。

        このメソッドは、時系列全体にわたって、うるう年の現在のルールを適用します。 一般に、年は4で割り切れる場合にうるう年です。 ただし、400で割り切れる年を除き、100で割り切れる年はうるう年ではありません。

        たとえば、1904年は4で割り切れるうるう年です。1900年は100で割り切れるため、うるう年ではありませんでしたが、2000年は400で割り切れるため、うるう年でした。

        計算は先発暦で、遠い将来および遠い過去にも同じルールが適用されます。 これは歴史的には正確ではありませんが、ISO-8601規格には正確です。

        戻り値:
        年がうるう年の場合はtrue、それ以外の場合はfalse
      • isValidMonthDay

        public boolean isValidMonthDay​(MonthDay monthDay)
        月-日がこの年に対して有効であるかどうかを確認します。

        このメソッドは、この年、および入力された月と日から有効な日付が形成されるかどうかを確認します。

        パラメータ:
        monthDay - 検証対象の月-日。nullはfalseを返す
        戻り値:
        その月と日がこの年に対して有効である場合はtrue
      • length

        public int length()
        この年の長さを日数で取得します。
        戻り値:
        この年の長さ(日数)。365または366
      • with

        public Year with​(TemporalAdjuster adjuster)
        この年の調整済のコピーを返します。

        これは、年を調整して、この年に基づくYearを返します。 調整は、指定されたアジャスタ戦略オブジェクトを使用して行われます。 どのような調整が行われるかを理解するには、アジャスタのドキュメントを参照してください。

        このメソッドの結果は、指定されたアジャスタでthisを引数として渡してTemporalAdjuster.adjustInto(Temporal)メソッドを呼び出すことによって取得されます。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        定義:
        インタフェースTemporalwith
        パラメータ:
        adjuster - 使用するアジャスタ、null以外
        戻り値:
        調整が行われた、これに基づくYear。null以外
        例外:
        DateTimeException - 調整ができない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • with

        public Year with​(TemporalField field,
                         long newValue)
        指定されたフィールドを新しい値に設定して、この年のコピーを返します。

        これは、指定されたフィールドの値を変更して、この年に基づくYearを返します。 値を設定できない場合は、フィールドがサポートされていないか他の理由のために、例外がスローされます。

        フィールドがChronoFieldの場合は、調整はここで実装されます。 サポートされるフィールドは次のように動作します。

        • YEAR_OF_ERA - 指定された紀元年を含むYearを返します。その紀元は変更されません。
        • YEAR - 指定された年を含むYearを返します。 これは日付を完全に置き換えるもので、of(int)と同等です。
        • ERA - 指定された紀元を含むYearを返します。 紀元年は変更されません。

        いずれの場合も、新しい値がフィールドの値の有効範囲外にあるとDateTimeExceptionがスローされます。

        他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。

        フィールドがChronoFieldではない場合、このメソッドの結果は、thisを引数として渡してTemporalField.adjustInto(Temporal, long)を呼び出すことによって取得されます。 この場合、インスタントを調整するかどうかおよびどのように調整するかはフィールドによって決まります。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        定義:
        インタフェースTemporalwith
        パラメータ:
        field - 結果に設定するフィールド、null以外
        newValue - 結果のフィールドの新しい値
        戻り値:
        指定されたフィールドが設定された、これに基づくYear。null以外
        例外:
        DateTimeException - フィールドを設定できない場合
        UnsupportedTemporalTypeException - フィールドがサポートされていない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • plus

        public Year plus​(TemporalAmount amountToAdd)
        指定された量を加算して、この年のコピーを返します。

        これは、指定された量を加算して、この年に基づくYearを返します。 この量は通常Periodですが、TemporalAmountインタフェースを実装する他のどの型であってもかまいません。

        計算は、TemporalAmount.addTo(Temporal)を呼び出すことによって量オブジェクトに委譲されます。 量実装は加算を任意の方法で自由に実装できますが、通常はplus(long, TemporalUnit)にコールバックします。 正常に加算できるかどうかを判断するには、量実装のドキュメントを参照してください。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        定義:
        インタフェースTemporalplus
        パラメータ:
        amountToAdd - 加算する量、nullでない
        戻り値:
        加算が行われた、この年に基づくYear。null以外
        例外:
        DateTimeException - 加算できない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • plus

        public Year plus​(long amountToAdd,
                         TemporalUnit unit)
        指定された量を加算して、この年のコピーを返します。

        これは、その単位での量を加算して、この年に基づくYearを返します。 量を加算できない場合、単位がサポートされていないか他の理由のために、例外がスローされます。

        フィールドがChronoUnitの場合は、加算はここで実装されます。 サポートされるフィールドは次のように動作します。

        • YEARS - 指定された年数を加算してYearを返します。 これはplusYears(long)と同等です。
        • DECADES - 指定された数の10年を加算してYearを返します。 これは、量を10倍にしてplusYears(long)を呼び出すことと同等です。
        • CENTURIES - 指定された数の100年を加算してYearを返します。 これは、量を100倍にしてplusYears(long)を呼び出すことと同等です。
        • MILLENNIA - 指定された数の1000年を加算してYearを返します。 これは、量を1,000倍にしてplusYears(long)を呼び出すことと同等です。
        • ERAS - 指定された紀元数を加算してYearを返します。 サポートされている紀元は2つのみなので、この量は1、0、または-1にする必要があります。 量が0以外である場合は、紀元年が変わらないように、その年が変更されます。

        他のすべてのChronoUnitインスタンスはUnsupportedTemporalTypeExceptionをスローします。

        フィールドがChronoUnitでない場合、このメソッドの結果は、thisを引数として渡してTemporalUnit.addTo(Temporal, long)を呼び出すことによって取得されます。 この場合、加算を実行するかどうかおよびどのように実行するかは単位によって決まります。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        定義:
        インタフェースTemporalplus
        パラメータ:
        amountToAdd - 結果に加算する単位の量、負も可
        unit - 加算する量の単位、nullでない
        戻り値:
        指定された量が加算された、この年に基づくYear。null以外
        例外:
        DateTimeException - 加算できない場合
        UnsupportedTemporalTypeException - 単位がサポートされていない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • plusYears

        public Year plusYears​(long yearsToAdd)
        指定された年数を加算して、このYearのコピーを返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        yearsToAdd - 加算する年数。負の値の場合もある
        戻り値:
        その年が加算された、この年に基づくYear。null以外
        例外:
        DateTimeException - 結果がサポートされている範囲を超える場合
      • minus

        public Year minus​(TemporalAmount amountToSubtract)
        指定された量を減算して、この年のコピーを返します。

        これは、指定された量を減算して、この年に基づくYearを返します。 この量は通常Periodですが、TemporalAmountインタフェースを実装する他のどの型であってもかまいません。

        計算は、TemporalAmount.subtractFrom(Temporal)を呼び出すことによって量オブジェクトに委譲されます。 量実装は減算を任意の方法で自由に実装できますが、通常はminus(long, TemporalUnit)にコールバックします。 正常に減算できるかどうかを判断するには、量実装のドキュメントを参照してください。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        定義:
        インタフェースTemporalminus
        パラメータ:
        amountToSubtract - 減算する量、nullでない
        戻り値:
        減算が行われた、この年に基づくYear。null以外
        例外:
        DateTimeException - 減算ができない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • minus

        public Year minus​(long amountToSubtract,
                          TemporalUnit unit)
        指定された量を減算して、この年のコピーを返します。

        これは、その単位での量を減算して、この年に基づくYearを返します。 量を減算できない場合、単位がサポートされていないか他の理由のために、例外がスローされます。

        このメソッドは、量を符号反転したplus(long, TemporalUnit)と同等です。 加算および減算がどのように行われるかについての詳しい説明は、そのメソッドを参照してください。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        定義:
        インタフェースTemporalminus
        パラメータ:
        amountToSubtract - 結果から減算する単位の量、負も可
        unit - 減算する量の単位、nullでない
        戻り値:
        指定された量が減算された、この年に基づくYear。null以外
        例外:
        DateTimeException - 減算ができない場合
        UnsupportedTemporalTypeException - 単位がサポートされていない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • minusYears

        public Year minusYears​(long yearsToSubtract)
        指定された年数を減算して、このYearのコピーを返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        yearsToSubtract - 減算する年数。負の値の場合もある
        戻り値:
        その年が減算された、この年に基づくYear。null以外
        例外:
        DateTimeException - 結果がサポートされている範囲を超える場合
      • query

        public <R> R query​(TemporalQuery<R> query)
        指定された問合せを使用してこの年を問い合せます。

        これは、指定された問合せ方針オブジェクトを使用してこの年を問い合わせます。 TemporalQueryオブジェクトは結果を取得するために使用するロジックを定義します。 このメソッドの結果を理解するには、問合せのドキュメントをお読みください。

        このメソッドの結果は、thisを引数として渡して、指定した問合せでTemporalQuery.queryFrom(TemporalAccessor)メソッドを呼び出すことによって取得します。

        定義:
        インタフェースTemporalAccessorquery
        型パラメータ:
        R - 結果の型
        パラメータ:
        query - 呼び出す問合せ、null以外
        戻り値:
        問合せ結果、nullが返されることがある(問合せによって定義される)
        例外:
        DateTimeException - 問い合わせできない場合(問合せによって定義される)
        ArithmeticException - 数値のオーバーフローが発生した場合(問合せによって定義される)
      • adjustInto

        public Temporal adjustInto​(Temporal temporal)
        指定された時間的オブジェクトをこの年になるように調整します。

        これは、年をこれと同じになるように変更して、入力と同じ識別可能な型の時間的オブジェクトを返します。

        この調整は、ChronoField.YEARをフィールドとして渡してTemporal.with(TemporalField, long)を使用することと同等です。 指定された時間的オブジェクトがISOの暦体系を使用しない場合は、DateTimeExceptionがスローされます。

        ほとんどのケースで、Temporal.with(TemporalAdjuster)を使用して、呼び出しパターンを逆にすると明確になります。

           // these two lines are equivalent, but the second approach is recommended
           temporal = thisYear.adjustInto(temporal);
           temporal = temporal.with(thisYear);
         

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        定義:
        インタフェースTemporalAdjusteradjustInto
        パラメータ:
        temporal - 調整するターゲット・オブジェクト、null以外
        戻り値:
        調整されるオブジェクト、null以外
        例外:
        DateTimeException - 調整を実行できない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • until

        public long until​(Temporal endExclusive,
                          TemporalUnit unit)
        別の年までの時間量を指定された単位で計算します。

        これは、1つのTemporalUnitを単位として、2つのYearオブジェクト間の時間量を計算します。 始点と終点は、これと指定された年です。 終了が開始より前である場合、結果は負になります。 このメソッドに渡されたTemporalは、from(TemporalAccessor)を使用してYearに変換されます。 たとえば、2つの年の間の10年単位の期間は、startYear.until(endYear, DECADES)を使用して計算できます。

        この計算では、2つの年の間の完全な単位の数を表す整数を返します。 たとえば、2012から2031までの10年単位の期間は、20年には1年足りないため、10年のみとなります。

        このメソッドを使用する等価な方法が2つあります。 1つ目はこのメソッドを呼び出すことです。 2つ目はTemporalUnit.between(Temporal, Temporal)を使用することです。

           // these two lines are equivalent
           amount = start.until(end, YEARS);
           amount = YEARS.between(start, end);
         
        この選択は、コードが読みやすくなるのはどちらかに基づいて行ってください。

        計算はChronoUnitのこのメソッドに実装します。 サポートされている単位は、YEARSDECADESCENTURIESMILLENNIA、およびERASです。 その他のChronoUnit値は例外をスローします。

        単位がChronoUnitでない場合、このメソッドの結果は、thisを1つ目の引数として、変換される入力temporal (一時)を2つ目の引数として渡してTemporalUnit.between(Temporal, Temporal)を呼び出すことによって取得します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        定義:
        インタフェースTemporaluntil
        パラメータ:
        endExclusive - Yearに変換される終了日付(これを含まない)。null以外
        unit - 量を測定する単位、null以外
        戻り値:
        この年から終了の年までの時間量
        例外:
        DateTimeException - その量を計算できないか、終了時間をYearに変換できない場合
        UnsupportedTemporalTypeException - 単位がサポートされていない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • format

        public String format​(DateTimeFormatter formatter)
        指定されたフォーマッタを使用してこの年を書式設定します。

        この年がフォーマッタに渡されて、文字列が生成されます。

        パラメータ:
        formatter - 使用するフォーマッタ、null以外
        戻り値:
        書式設定された年の文字列。null以外
        例外:
        DateTimeException - 出力時にエラーが発生した場合
      • atDay

        public LocalDate atDay​(int dayOfYear)
        この年を「年の日」と組み合せてLocalDateを作成します。

        これは、この年および指定された「年の日」から形成されたLocalDateを返します。

        366という「年の日」の値は、うるう年にのみ有効です。

        パラメータ:
        dayOfYear - 使用する「年の日」。1から365-366
        戻り値:
        この年および指定された「年の日」から形成されたローカル日付。null以外
        例外:
        DateTimeException - 「年の日」がゼロ以下であるか、366以上であるか、366に等しいがうるう年でない場合
      • atMonth

        public YearMonth atMonth​(Month month)
        この年を月と組み合せてYearMonthを作成します。

        これは、この年および指定された月から形成されたYearMonthを返します。 年と月の考えられるすべての組合せが有効です。

        このメソッドは、日付を生成するためのチェーンの一部として使用できます。

          LocalDate date = year.atMonth(month).atDay(day);
         

        パラメータ:
        month - 使用する月。null以外
        戻り値:
        この年および指定された月から形成された年-月。null以外
      • atMonth

        public YearMonth atMonth​(int month)
        この年を月と組み合せてYearMonthを作成します。

        これは、この年および指定された月から形成されたYearMonthを返します。 年と月の考えられるすべての組合せが有効です。

        このメソッドは、日付を生成するためのチェーンの一部として使用できます。

          LocalDate date = year.atMonth(month).atDay(day);
         

        パラメータ:
        month - 使用する月。1(1月)-12(12月)
        戻り値:
        この年および指定された月から形成された年-月。null以外
        例外:
        DateTimeException - その月が無効である場合
      • atMonthDay

        public LocalDate atMonthDay​(MonthDay monthDay)
        この年を月-日と組み合せてLocalDateを作成します。

        これは、この年および指定された月-日から形成されたLocalDateを返します。

        2月29日という月-日は、その年がうるう年でなければ、結果となる日付で2月28日に調整されます。

        パラメータ:
        monthDay - 使用する月-日。null以外
        戻り値:
        この年および指定された月-日から形成されたローカル日付。null以外
      • compareTo

        public int compareTo​(Year other)
        この年をもう一方の年と比較します。

        この比較は、年の値に基づいています。 Comparableに定義されているとおりに、「equalsと一致」しています。

        定義:
        compareTo、インタフェースComparable<Year>
        パラメータ:
        other - 比較対象のもう一方の年。null以外
        戻り値:
        コンパレータ値、小さい場合は負、大きい場合は正
      • isAfter

        public boolean isAfter​(Year other)
        この年が、指定された年より後にあるかどうかをチェックします。
        パラメータ:
        other - 比較対象のもう一方の年。null以外
        戻り値:
        これが指定された年より後にある場合はtrue
      • isBefore

        public boolean isBefore​(Year other)
        この年が、指定された年より前にあるかどうかをチェックします。
        パラメータ:
        other - 比較対象のもう一方の年。null以外
        戻り値:
        この時点が指定された年より前にある場合はtrue
      • equals

        public boolean equals​(Object obj)
        この年がもう一方の年と等しいかどうかを確認します。

        この比較は、それらの年の時系列上の位置に基づいています。

        オーバーライド:
        equals、クラスObject
        パラメータ:
        obj - チェックするオブジェクト、nullはfalseを返す
        戻り値:
        これがもう一方の年と等しい場合はtrue
        関連項目:
        Object.hashCode()HashMap
      • toString

        public String toString()
        この年をStringとして出力します。
        オーバーライド:
        toString、クラスObject
        戻り値:
        この年の文字列表現。null以外