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

列挙型Month

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


    public enum Month
    extends Enum<Month>
    implements TemporalAccessor, TemporalAdjuster
    「月」(「July」など)。

    Monthは、1年の12か月(1月、2月、3月、4月、5月、6月、7月、8月、9月、10月、11月、12月)を表す列挙型です。

    各月には、テキストの列挙名の他にint値もあります。 このint値は、通常の使用法およびISO-8601標準に準拠して、1(1月)-12(12月)になります。 コードをわかりやすくするために、アプリケーションはint値ではなく列挙型を使用することをお薦めします。

    Monthの数値表現の取得にordinal()を使用しないでください。 かわりにgetValue()を使用してください。

    この列挙型は、多くの暦体系に見られる共通の概念を表現します。 そのためこの列挙型は、ISO-8601の暦体系とまったく同等であると定義された月の概念を持つどの暦体系でも使用できます。

    実装要件:
    これは不変でスレッドセーフな列挙型です。
    導入されたバージョン:
    1.8
    • 列挙型定数のサマリー

      列挙型定数 
      列挙型定数 説明
      APRIL
      30日まである4月を表すシングルトン・インスタンスです。
      AUGUST
      31日まである8月を表すシングルトン・インスタンスです。
      DECEMBER
      31日まである12月を表すシングルトン・インスタンスです。
      FEBRUARY
      28日または29日(うるう年)まである2月を表すシングルトン・インスタンスです。
      JANUARY
      31日まである1月を表すシングルトン・インスタンスです。
      JULY
      31日まである7月を表すシングルトン・インスタンスです。
      JUNE
      30日まである6月を表すシングルトン・インスタンスです。
      MARCH
      31日まである3月を表すシングルトン・インスタンスです。
      MAY
      31日まである5月を表すシングルトン・インスタンスです。
      NOVEMBER
      30日まである11月を表すシングルトン・インスタンスです。
      OCTOBER
      31日まである10月を表すシングルトン・インスタンスです。
      SEPTEMBER
      30日まである9月を表すシングルトン・インスタンスです。
    • 列挙型定数の詳細

      • JANUARY

        public static final Month JANUARY
        31日まである1月を表すシングルトン・インスタンスです。 これの数値は1です。
      • FEBRUARY

        public static final Month FEBRUARY
        28日または29日(うるう年)まである2月を表すシングルトン・インスタンスです。 これの数値は2です。
      • MARCH

        public static final Month MARCH
        31日まである3月を表すシングルトン・インスタンスです。 これの数値は3です。
      • APRIL

        public static final Month APRIL
        30日まである4月を表すシングルトン・インスタンスです。 これの数値は4です。
      • MAY

        public static final Month MAY
        31日まである5月を表すシングルトン・インスタンスです。 これの数値は5です。
      • JUNE

        public static final Month JUNE
        30日まである6月を表すシングルトン・インスタンスです。 これの数値は6です。
      • JULY

        public static final Month JULY
        31日まである7月を表すシングルトン・インスタンスです。 これの数値は7です。
      • AUGUST

        public static final Month AUGUST
        31日まである8月を表すシングルトン・インスタンスです。 これには、数値の8が入ります。
      • SEPTEMBER

        public static final Month SEPTEMBER
        30日まである9月を表すシングルトン・インスタンスです。 これには、数値の9が入ります。
      • OCTOBER

        public static final Month OCTOBER
        31日まである10月を表すシングルトン・インスタンスです。 これには、数値の10が入ります。
      • NOVEMBER

        public static final Month NOVEMBER
        30日まである11月を表すシングルトン・インスタンスです。 これには、数値の11が入ります。
      • DECEMBER

        public static final Month DECEMBER
        31日まである12月を表すシングルトン・インスタンスです。 これには、数値の12が入ります。
    • メソッドの詳細

      • values

        public static Month[] values​()
        この列挙型の定数を含む配列を、宣言されている順序で返します。 このメソッドは、次のようにして定数を反復するために使用できます。
        for (Month c : Month.values())
            System.out.println(c);
        
        戻り値:
        この列挙型の定数を含む配列(宣言されている順序)
      • valueOf

        public static Month valueOf​(String name)
        指定された名前を持つ、この型の列挙型定数を返します。 文字列は、この型の列挙型定数を宣言するのに使用した識別子と厳密に一致している必要があります。 (不適切な空白文字は許可されません。)
        パラメータ:
        name - 返される列挙型定数の名前。
        戻り値:
        指定された名前を持つ列挙型定数
        例外:
        IllegalArgumentException - 指定された名前を持つ定数をこの列挙型が持っていない場合
        NullPointerException - 引数がnullの場合
      • of

        public static Month of​(int month)
        int値からMonthのインスタンスを取得します。

        Monthは1年の12か月を表す列挙型です。 このファクトリを使用すると、int値から列挙型を取得できます。 このint値は、ISO-8601標準に準拠して、1(1月)-12(12月)になります。

        パラメータ:
        month - 表される月。1(1月)-12(12月)
        戻り値:
        月。null以外
        例外:
        DateTimeException - その月が無効である場合
      • from

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

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

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

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

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

        public int getValue​()
        月を表すint値を取得します。

        これらの値は、ISO-8601標準に準拠して、1(1月)-12(12月)の番号が付けられます。

        戻り値:
        1(1月)-12(12月)の月
      • getDisplayName

        public String getDisplayName​(TextStyle style,
                                     Locale locale)
        「1月」や「12月」などのテキスト表現を取得します。

        これは、ユーザへの表示に適した、月の識別に使用されるテキスト名を返します。 パラメータは返されるテキストとロケールのスタイルを制御します。

        テキスト・マッピングが見つからない場合、数値が返されます。

        パラメータ:
        style - 必要なテキストの長さ、nullでない
        locale - 使用するロケール。null以外
        戻り値:
        月のテキスト値。null以外
      • isSupported

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

        これは、指定されたフィールドをこの月に問い合せることができるかどうかを確認します。 falseの場合、rangeメソッドとgetメソッドを呼び出すと例外がスローされます。

        フィールドがMONTH_OF_YEARである場合、このメソッドはtrueを返します。 他のすべてのChronoFieldインスタンスはfalseを返します。

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

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

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

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

        フィールドがMONTH_OF_YEARである場合は、月の範囲(1-12)が返されます。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。

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

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

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

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

        フィールドがMONTH_OF_YEARである場合は、月の値(1-12)が返されます。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。

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

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

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

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

        フィールドがMONTH_OF_YEARである場合は、月の値(1-12)が返されます。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。

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

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

        public Month plus​(long months)
        この月の後に指定された月数を返します。

        この計算は、年の終わりで12月から1月に戻ります。 指定する期間は負でもかまいません。

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

        パラメータ:
        months - 加算する月数(正または負)
        戻り値:
        結果となる月。null以外
      • minus

        public Month minus​(long months)
        この月から指定された月数だけ遡った月を返します。

        この計算は、年の始めで1月から12月に戻ります。 指定する期間は負でもかまいません。

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

        パラメータ:
        months - 減算する月数(正または負)
        戻り値:
        結果となる月。null以外
      • length

        public int length​(boolean leapYear)
        この月の長さ(日数)を取得します。

        これは、うるう年の長さを返すかどうかを判断するためのフラグを取ります。

        2月は、標準の年では28日まであり、うるう年では29日まであります。 4月、6月、9月、および11月は30日まであります。 他のすべての月は31日まであります。

        パラメータ:
        leapYear - うるう年の長さが必要な場合はtrue
        戻り値:
        この月の長さ(日数)。28-31
      • minLength

        public int minLength​()
        この月の最小の長さ(日数)を取得します。

        2月の最小の長さは28日です。 4月、6月、9月、および11月は30日まであります。 他のすべての月は31日まであります。

        戻り値:
        この月の最小の長さ(日数)。28-31
      • maxLength

        public int maxLength​()
        この月の最大の長さ(日数)を取得します。

        2月の最大の長さは29日です。 4月、6月、9月、および11月は30日まであります。 他のすべての月は31日まであります。

        戻り値:
        この月の最大の長さ(日数)。29-31
      • firstDayOfYear

        public int firstDayOfYear​(boolean leapYear)
        この月の最初の日に対応する「年の日」を取得します。

        これは、うるう年のフラグを使って2月の長さを判断し、この月が始まる「年の日」を返します。

        パラメータ:
        leapYear - うるう年の長さが必要な場合はtrue
        戻り値:
        この月の最初の日に対応する「年の日」(1-336)
      • firstMonthOfQuarter

        public Month firstMonthOfQuarter​()
        この四半期の最初の月に相当する月を取得します。

        1年は4つの四半期に分けることができます。 このメソッドは、ベース月の四半期の最初の月を返します。 1月、2月、および3月は、1月を返します。 4月、5月、および6月は、4月を返します。 7月、8月、および9月は、7月を返します。 10月、11月、および12月は、10月を返します。

        戻り値:
        この月に対応する四半期の最初の月。null以外
      • 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.MONTH_OF_YEARをフィールドとして渡してTemporal.with(TemporalField, long)を使用することと同等です。 指定された時間的オブジェクトがISOの暦体系を使用しない場合は、DateTimeExceptionがスローされます。

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

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

        たとえば、5月の日付を指定すると、出力は次のようになります。

           dateInMay.with(JANUARY);    // four months earlier
           dateInMay.with(APRIL);      // one months earlier
           dateInMay.with(MAY);        // same date
           dateInMay.with(JUNE);       // one month later
           dateInMay.with(DECEMBER);   // seven months later
         

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

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