- すべての実装されたインタフェース:
Serializable
標準の週の長さは7日間ですが、週の他の側面については文化によって定義が異なる場合があります。 このクラスは、TemporalField
インスタンスを提供する目的で、週の定義を表します。
WeekFieldsにはdayOfWeek()
、weekOfMonth()
、weekOfYear()
、weekOfWeekBasedYear()
およびweekBasedYear()
という5つのフィールドがあり、任意の時間的オブジェクトの値へのアクセスを提供します。
曜日、「月の週番号」および「年の週番号」は、エポック日と暦に基づく「先発暦の年」、月、「月の日」およびISO暦の曜日に基づいています。 暦によっては値を紀元年に揃えることができない場合があります。
週は次によって定義されます。
- 最初の曜日。 たとえば、ISO-8601標準では月曜日が最初の曜日と見なされます。
- 最初の週の最小日数。 たとえば、ISO-8601標準では、最初の週に少なくとも4日が必要とされます。
月の週番号
1つのフィールド「月の週番号」が使用されます。 計算では、週が月の境界に重ならないことが保証されます。 定義された最初の曜日で各期間が始まるように、月が期間に分割されます。 もっとも早い期間が、最小日数に満たない場合は週0となり、最小日数以上を含む場合は週1となります。日付 | 曜日 | 最初の曜日: 月曜日 最小日数: 4 | 最初の曜日: 月曜日 最小日数: 5 |
---|---|---|---|
2008-12-31 | 水曜日 | 2008年12月の週5 | 2008年12月の週5 |
2009-01-01 | 木曜日 | 2009年1月の週1 | 2009年1月の週0 |
2009-01-04 | 日曜日 | 2009年1月の週1 | 2009年1月の週0 |
2009-01-05 | 月曜日 | 2009年1月の週2 | 2009年1月の週1 |
年の週
1つのフィールド「年の週番号」が使用されます。 計算では、週が年の境界に重ならないことが保証されます。 定義された最初の曜日で各期間が始まるように、年が期間に分割されます。 もっとも早い期間が、最小日数に満たない場合は週0となり、最小日数以上を含む場合は週1となります。暦週の基準年
暦週の基準年には2つのフィールドが使用されます。1つは「暦週の基準年の週番号」
、もう1つは「暦週の基準年」
です。 暦週の基準年では、各週は1つの年だけに属します。 年の週1は、最初の曜日で始まり最小日数以上を含む最初の週です。 年の最初の週は前の暦年の日を含む可能性があり、最後の週は次の暦年の日を含む可能性があります。
日付 | 曜日 | 最初の曜日: 月曜日 最小日数: 4 | 最初の曜日: 月曜日 最小日数: 5 |
---|---|---|---|
2008-12-31 | 水曜日 | 2009年の週1 | 2008年の週53 |
2009-01-01 | 木曜日 | 2009年の週1 | 2008年の週53 |
2009-01-04 | 日曜日 | 2009年の週1 | 2008年の週53 |
2009-01-05 | 月曜日 | 2009年の週2 | 2009年の週1 |
- 実装要件:
- このクラスは不変でスレッドセーフです。
- 導入されたバージョン:
- 1.8
- 関連項目:
-
フィールドのサマリー
修飾子と型フィールド説明static final WeekFields
週が月曜日から始まり、最初の週には少なくとも4日が含まれるISO-8601の定義です。static final WeekFields
日曜日から始まる週の共通の定義であり、最初の週には少なくとも1日が含まれます。static final TemporalUnit
加算および減算の目的で暦週の基準年を表す単位です。 -
メソッドのサマリー
修飾子と型メソッド説明このWeekFields
に基づいて、曜日にアクセスするフィールドを返します。boolean
このWeekFields
が指定されたオブジェクトと等しいかどうかをチェックします。週の最初の曜日を取得します。int
最初の週の最小日数を取得します。int
hashCode()
このWeekFields
のハッシュ・コードです。static WeekFields
週の最初の曜日および最小日数からWeekFields
のインスタンスを取得します。static WeekFields
ロケールに適したWeekFields
のインスタンスを取得します。toString()
このWeekFields
インスタンスの文字列表現です。このWeekFields
に基づいて、暦週の基準年の年にアクセスするフィールドを返します。このWeekFields
に基づいて、月の何週目かを表す値にアクセスするフィールドを返します。このWeekFields
に基づいて、暦週の基準年の何週目かを表す値にアクセスするフィールドを返します。このWeekFields
に基づいて、年の何週目かを表す値にアクセスするフィールドを返します。
-
フィールド詳細
-
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"拡張子の暗黙のものよりも優先されます。
たとえば、英語ロケールの使用に関心があるが、ISO-8601標準に対応する週の初日をコールするユーザー
Locale enIsoLoc = Locale.forLanguageTag("en-u-fw-mon"); WeekFields.of(enIsoLoc).getFirstDayOfWeek(); // returns MONDAY
- パラメータ:
locale
- 使用するロケール。null以外- 戻り値:
- 週の定義。null以外
-
of
public static WeekFields of(DayOfWeek firstDayOfWeek, int minimalDaysInFirstWeek) 週の最初の曜日および最小日数からWeekFields
のインスタンスを取得します。最初の曜日は、曜日1となるISO暦の
DayOfWeek
を定義します。 最初の週の最小日数は、最初の曜日から始まるその週が、月または年のうちの何日以上を含んでいれば最初の週と見なされるかを定義します。 値が1の場合は、その月または年の1日目が最初の週に含まれると見なされ、値が7の場合は、その7日間全体が新しい月または年に含まれている必要があります。WeekFieldsインスタンスはシングルトンです。
firstDayOfWeek
とminimalDaysInFirstWeek
の一意の組み合わせごとに、同じインスタンスが返されます。- パラメータ:
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
が指定されたオブジェクトと等しいかどうかをチェックします。比較はルールの全体の状態、つまり最初の曜日と最小日数に基づきます。
-
hashCode
public int hashCode()このWeekFields
のハッシュ・コードです。 -
toString
public String toString()このWeekFields
インスタンスの文字列表現です。
-