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

クラスWeekFields

  • すべての実装されたインタフェース:
    Serializable

    public final class WeekFields
    extends Object
    implements Serializable
    曜日、「月の週番号」、および「年の週番号」フィールドのローカライズされた定義です。

    標準の週の長さは7日間ですが、週の他の側面については文化によって定義が異なる場合があります。 このクラスは、TemporalFieldインスタンスを提供する目的で、週の定義を表します。

    WeekFieldsにはdayOfWeek()weekOfMonth()weekOfYear()weekOfWeekBasedYear()およびweekBasedYear()という5つのフィールドがあり、任意の時間的オブジェクトの値へのアクセスを提供します。

    曜日、「月の週番号」および「年の週番号」は、エポック日と暦に基づく「先発暦の年」「月の日」およびISO暦の曜日に基づいています。 暦によっては値を紀元年に揃えることができない場合があります。

    週は次によって定義されます。

    • 最初の曜日。 たとえば、ISO-8601標準では月曜日が最初の曜日と見なされます。
    • 最初の週の最小日数。 たとえば、ISO-8601標準では、最初の週に少なくとも4日が必要とされます。
    これらの2つの値を組み合せると、年または月を週に分割できます。

    月の週番号

    1つのフィールド「月の週番号」が使用されます。 計算では、週が月の境界に重ならないことが保証されます。 定義された最初の曜日で各期間が始まるように、月が期間に分割されます。 もっとも早い期間が、最小日数に満たない場合は週0となり、最小日数以上を含む場合は週1となります。
    WeekFieldsの例
    日付曜日 最初の曜日: 月曜日
    最小日数: 4
    最初の曜日: 月曜日
    最小日数: 5
    2008-12-31水曜日 2008年12月の週52008年12月の週5
    2009-01-01木曜日 2009年1月の週12009年1月の週0
    2009-01-04日曜日 2009年1月の週12009年1月の週0
    2009-01-05月曜日 2009年1月の週22009年1月の週1

    年の週

    1つのフィールド「年の週番号」が使用されます。 計算では、週が年の境界に重ならないことが保証されます。 定義された最初の曜日で各期間が始まるように、年が期間に分割されます。 もっとも早い期間が、最小日数に満たない場合は週0となり、最小日数以上を含む場合は週1となります。

    暦週の基準年

    暦週の基準年には2つのフィールドが使用されます。1つは暦週の基準年の週番号、もう1つは暦週の基準年です。 暦週の基準年では、各週は1つの年だけに属します。 年の週1は、最初の曜日で始まり最小日数以上を含む最初の週です。 年の最初の週は前の暦年の日を含む可能性があり、最後の週は次の暦年の日を含む可能性があります。
    暦週の基準年のWeekFieldsの例
    日付曜日 最初の曜日: 月曜日
    最小日数: 4
    最初の曜日: 月曜日
    最小日数: 5
    2008-12-31水曜日 2009年の週12008年の週53
    2009-01-01木曜日 2009年の週12008年の週53
    2009-01-04日曜日 2009年の週12008年の週53
    2009-01-05月曜日 2009年の週22009年の週1
    実装要件:
    このクラスは不変でスレッドセーフです。
    導入されたバージョン:
    1.8
    関連項目:
    直列化された形式
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      static WeekFields ISO
      週が月曜日から始まり、最初の週には少なくとも4日が含まれるISO-8601の定義です。
      static WeekFields SUNDAY_START
      日曜日から始まる週の共通の定義であり、最初の週には少なくとも1日が含まれます。
      static TemporalUnit WEEK_BASED_YEARS
      加算および減算の目的で暦週の基準年を表す単位です。
    • フィールドの詳細

      • ISO

        public static final WeekFields ISO
        週が月曜日から始まり、最初の週には少なくとも4日が含まれるISO-8601の定義です。

        ISO-8601標準では、週に基づく暦体系が定義されています。 そこでは、標準的な年/月/日のかわりに「暦週の基準年」と「暦週の基準年の週番号」の概念を使用して、日の経過が分割されます。

        最初の週が1つ前の暦年から始まる場合があります。 また、暦年の最初の数日が、1つ前の暦年に対応する暦週の基準年に含まれる場合もあります。

      • SUNDAY_START

        public static final WeekFields SUNDAY_START
        日曜日から始まる週の共通の定義であり、最初の週には少なくとも1日が含まれます。

        日曜日から始まり、その月の1日以上を含むものとして定義されます。 この週の定義は米国とヨーロッパの国で使用されます。

      • WEEK_BASED_YEARS

        public static final TemporalUnit WEEK_BASED_YEARS
        加算および減算の目的で暦週の基準年を表す単位です。

        これを使用すると、暦週の基準年の数を日付に加算または減算できます。 単位は52週または53週と等しくなります。 暦週の基準年の推定デュレーションは、標準のISO暦の年と同じ365.2425日です。

        加算ルールでは、暦週の基準年の年数を「暦週の基準年」フィールドの既存値に加算し、「暦週の基準年の週番号」と曜日はそのままにします(ターゲットの年に対して週番号が大きすぎる場合を除く)。 そのような場合、週は同じ曜日を持つ年の最後の週に設定されます。

        この単位は不変でスレッドセーフなシングルトンです。

    • メソッドの詳細

      • of

        public static WeekFields of​(Locale locale)
        ロケールに適したWeekFieldsのインスタンスを取得します。

        これは、ローカリゼーション・データのプロバイダから適切な値を検索します。 ロケールに"fw" (週の最初の日)および/または"rg" (リージョン・オーバーライド) 「Unicode拡張」が含まれている場合、返されたインスタンスにはこれらの拡張子で指定された値が反映されます。 "fw"と"rg"の両方が指定されている場合、"fw"拡張子の値は、"rg"拡張子の暗黙のものよりも優先されます。

        パラメータ:
        locale - 使用するロケール。null以外
        戻り値:
        週の定義。null以外
      • of

        public static WeekFields of​(DayOfWeek firstDayOfWeek,
                                    int minimalDaysInFirstWeek)
        週の最初の曜日および最小日数からWeekFieldsのインスタンスを取得します。

        最初の曜日は、曜日1となるISO暦のDayOfWeekを定義します。 最初の週の最小日数は、最初の曜日から始まるその週が、月または年のうちの何日以上を含んでいれば最初の週と見なされるかを定義します。 値が1の場合は、その月または年の1日目が最初の週に含まれると見なされ、値が7の場合は、その7日間全体が新しい月または年に含まれている必要があります。

        WeekFieldsインスタンスはシングルトンです。firstDayOfWeekminimalDaysInFirstWeekの一意の組み合わせごとに、同じインスタンスが返されます。

        パラメータ:
        firstDayOfWeek - 週の最初の曜日。null以外
        minimalDaysInFirstWeek - 最初の週の最小日数。1から7まで
        戻り値:
        週の定義。null以外
        例外:
        IllegalArgumentException - 最小日数の値が1より小さいか7より大きい場合
      • getFirstDayOfWeek

        public DayOfWeek getFirstDayOfWeek()
        週の最初の曜日を取得します。

        最初の曜日は文化によって異なります。 たとえば、米国では日曜日が使用され、フランスとISO-8601標準では月曜日が使用されます。 このメソッドは標準のDayOfWeekの列挙を使用して最初の曜日を返します。

        戻り値:
        最初の曜日。null以外
      • getMinimalDaysInFirstWeek

        public int getMinimalDaysInFirstWeek()
        最初の週の最小日数を取得します。

        月または年の最初の週を定義するために考慮される日数は、文化によって異なります。 たとえば、ISO-8601標準では、最初の週と見なすには4日(1週間の半分以上)が必要です。

        戻り値:
        月または年の最初の週の最小日数。1から7まで
      • dayOfWeek

        public TemporalField dayOfWeek()
        このWeekFieldsに基づいて、曜日にアクセスするフィールドを返します。

        これはChronoField.DAY_OF_WEEKに似ていますが、このWeekFieldsに基づく曜日の値を使用します。 曜日には1から7までの番号が付けられ、最初の曜日に値1が割り当てられます。

        たとえば、最初の曜日が日曜日の場合は、それに値1が割り当てられ、他の曜日には月曜日の2から土曜日の7までが割り当てられます。

        解析時の解決フェーズでは、ローカライズされた曜日が標準化されたChronoFieldの曜日に変換されます。 曜日は1から7までの有効な範囲内になければなりません。 このクラスの他のフィールドは、標準化された曜日を使用して日付を構築します。

        戻り値:
        ローカライズされた番号付けによる曜日へのアクセスを提供するフィールド。null以外
      • weekOfMonth

        public TemporalField weekOfMonth()
        このWeekFieldsに基づいて、月の何週目かを表す値にアクセスするフィールドを返します。

        これは、週が固定の曜日(月曜日など)から始まる場合の、月内での週のカウントの概念を表します。 通常、このフィールドはdayOfWeek()とともに使用されます。

        週1は、その月の少なくともgetMinimalDaysInFirstWeek()日を含む、getFirstDayOfWeek()から始まる週です。 したがって、週1の開始は、月の開始より最大minDays日前になる場合があります。 月の開始より後に最初の週が始まる場合、それより前の期間は週0です。

        例:
        - 月の1日目が月曜日の場合、1日目から週1が始まり、週0はありません
        - 月の2日目が月曜日の場合、2日目から週1が始まり、1日目は週0に含まれます
        - 月の4日目が月曜日の場合、4日目から週1が始まり、1日目から3日目までは週0に含まれます
        - 月の5日目が月曜日の場合、5日目から週2が始まり、1日目から4日目までは週1に含まれます

        このフィールドは任意の暦体系で使用できます。

        解析時の解決フェーズでは、年、「月の週番号」、月および曜日から日付を作成できます。

        厳密モードでは、4つすべてのフィールドがそれぞれの有効値の範囲に対して検証されます。 「月の週番号」フィールドは、結果となる月が要求された月であることを確認するために検証されます。

        スマート・モードでは、4つすべてのフィールドがそれぞれの有効値の範囲に対して検証されます。 「月の週番号」フィールドは0から6の範囲で検証されます。これは、結果となる日付が、指定された月とは別の月に含まれる可能性があることを意味します。

        非厳密モードでは、年と曜日が有効値の範囲に対して検証されます。 結果となる日付は、次の4段階方式と等価の方法で計算されます。 まず、要求された年の1月の第1週の1日目において日付を作成します。 次に、月の値から1を減算し、その月数を日付に加算します。 次に、「月の週番号」の値から1を減算し、その週数を日付に加算します。 最後に、ローカライズされた週内の正しい曜日に調整します。

        戻り値:
        「月の週番号」へのアクセスを提供するフィールド。null以外
      • weekOfYear

        public TemporalField weekOfYear()
        このWeekFieldsに基づいて、年の何週目かを表す値にアクセスするフィールドを返します。

        これは、週が固定の曜日(月曜日など)から始まる場合の、年内での週のカウントの概念を表します。 通常、このフィールドはdayOfWeek()とともに使用されます。

        週1は、その年の少なくともgetMinimalDaysInFirstWeek()日を含む、getFirstDayOfWeek()から始まる週です。 したがって、週1の開始は、年の開始より最大minDays日前になる場合があります。 年の開始より後に最初の週が始まる場合、それより前の期間は週0です。

        例:
        - 年の1日目が月曜日の場合、1日目から週1が始まり、週0はありません
        - 年の2日目が月曜日の場合、2日目から週1が始まり、1日目は週0に含まれます
        - 年の4日目が月曜日の場合、4日目から週1が始まり、1日目から3日目までは週0に含まれます
        - 年の5日目が月曜日の場合、5日目から週2が始まり、1日目から4日目までは週1に含まれます

        このフィールドは任意の暦体系で使用できます。

        解析時の解決フェーズでは、年、「年の週番号」および曜日から日付を作成できます。

        厳密モードでは、3つすべてのフィールドがそれぞれの有効値の範囲に対して検証されます。 「年の週番号」フィールドは、結果となる年が要求された年であることを確認するために検証されます。

        スマート・モードでは、3つすべてのフィールドがそれぞれの有効値の範囲に対して検証されます。 「年の週番号」フィールドは0から54の範囲で検証されます。これは、結果となる日付が、指定された年とは別の年に含まれる可能性があることを意味します。

        非厳密モードでは、年と曜日が有効値の範囲に対して検証されます。 結果となる日付は、次の3段階方式と等価の方法で計算されます。 まず、要求された年の第1週の1日目において日付を作成します。 次に、「年の週番号」の値から1を減算し、その週数を日付に加算します。 最後に、ローカライズされた週内の正しい曜日に調整します。

        戻り値:
        「年の週番号」へのアクセスを提供するフィールド。null以外
      • weekOfWeekBasedYear

        public TemporalField weekOfWeekBasedYear()
        このWeekFieldsに基づいて、暦週の基準年の何週目かを表す値にアクセスするフィールドを返します。

        これは、週が固定の曜日(月曜日など)から始まり、各週の全体がある1年に属する場合の、年内での週のカウントの概念を表します。 通常、このフィールドはdayOfWeek()およびweekBasedYear()とともに使用されます。

        週1は、その年の少なくともgetMinimalDaysInFirstWeek()日を含む、getFirstDayOfWeek()から始まる週です。 年の開始より後に最初の週が始まる場合、それより前の期間は、前の年の最後の週に含まれます。

        例:
        - 年の1日目が月曜日の場合、1日目から週1が始まります
        - 年の2日目が月曜日の場合、2日目から週1が始まり、1日目は前年の最後の週に含まれます
        - 年の4日目が月曜日の場合、4日目から週1が始まり、1日目から3日目までは前年の最後の週に含まれます
        - 年の5日目が月曜日の場合、5日目から週2が始まり、1日目から4日目までは週1に含まれます

        このフィールドは任意の暦体系で使用できます。

        解析時の解決フェーズでは、「暦週の基準年」、「年の週番号」および曜日から日付を作成できます。

        厳密モードでは、3つすべてのフィールドがそれぞれの有効値の範囲に対して検証されます。 「年の週番号」フィールドは、結果となる「暦週の基準年」が要求された「暦週の基準年」であることを確認するために検証されます。

        スマート・モードでは、3つすべてのフィールドがそれぞれの有効値の範囲に対して検証されます。 「暦週の基準年の週番号」フィールドは1から53の範囲で検証されます。これは、結果となる日付が、指定された暦週の基準年の次の年に含まれる可能性があることを意味します。

        非厳密モードでは、年と曜日が有効値の範囲に対して検証されます。 結果となる日付は、次の3段階方式と等価の方法で計算されます。 まず、要求された「暦週の基準年」の第1週の1日目において日付を作成します。 次に、「暦週の基準年の週番号」の値から1を減算し、その週数を日付に加算します。 最後に、ローカライズされた週内の正しい曜日に調整します。

        戻り値:
        「暦週の基準年の週番号」へのアクセスを提供するフィールド。null以外
      • weekBasedYear

        public TemporalField weekBasedYear()
        このWeekFieldsに基づいて、暦週の基準年の年にアクセスするフィールドを返します。

        これは、週が固定の曜日(月曜日など)から始まり、各週の全体がある1年に属する場合の、年の概念を表します。 通常、このフィールドはdayOfWeek()およびweekOfWeekBasedYear()とともに使用されます。

        週1は、その年の少なくともgetMinimalDaysInFirstWeek()日を含む、getFirstDayOfWeek()から始まる週です。 したがって、週1の開始は、年の開始より前になる場合があります。 年の開始より後に最初の週が始まる場合、それより前の期間は、前の年の最後の週に含まれます。

        このフィールドは任意の暦体系で使用できます。

        解析時の解決フェーズでは、「暦週の基準年」、「年の週番号」および曜日から日付を作成できます。

        厳密モードでは、3つすべてのフィールドがそれぞれの有効値の範囲に対して検証されます。 「年の週番号」フィールドは、結果となる「暦週の基準年」が要求された「暦週の基準年」であることを確認するために検証されます。

        スマート・モードでは、3つすべてのフィールドがそれぞれの有効値の範囲に対して検証されます。 「暦週の基準年の週番号」フィールドは1から53の範囲で検証されます。これは、結果となる日付が、指定された暦週の基準年の次の年に含まれる可能性があることを意味します。

        非厳密モードでは、年と曜日が有効値の範囲に対して検証されます。 結果となる日付は、次の3段階方式と等価の方法で計算されます。 まず、要求された「暦週の基準年」の第1週の1日目において日付を作成します。 次に、「暦週の基準年の週番号」の値から1を減算し、その週数を日付に加算します。 最後に、ローカライズされた週内の正しい曜日に調整します。

        戻り値:
        「暦週の基準年」へのアクセスを提供するフィールド。null以外
      • equals

        public boolean equals​(Object object)
        このWeekFieldsが指定されたオブジェクトと等しいかどうかをチェックします。

        比較はルールの全体の状態、つまり最初の曜日と最小日数に基づきます。

        オーバーライド:
        equals 、クラス:  Object
        パラメータ:
        object - 比較対象の他のルール、nullはfalseを返す
        戻り値:
        これが指定されたルールと等しい場合はtrue
        関連項目:
        Object.hashCode()HashMap
      • toString

        public String toString()
        このWeekFieldsインスタンスの文字列表現です。
        オーバーライド:
        toString 、クラス:  Object
        戻り値:
        文字列表現。null以外