インスタンスプロパティ
yearForWeekOfYear
一年または年数。
iOS 8.0+ iPadOS 8.0+ Mac Catalyst 13.0+ macOS 10.9+ tvOS 9.0+ visionOS 1.0+ watchOS 2.0+ Xcode 8.0+
var yearForWeekOfYear: Int? { get set }
議論
グレゴリオ暦では、1 週間は 7 日、1 年は 365 日、うるう年は 366 日と定義されています。ただし、365 日も 366 日も 7 日間の週に均等に分割できないため、1 年の最後の週が翌年の 1 日に終了し、1 年の最初の週が前年に始まることがよくあります。これを調整するために、ISO 8601 では、52 週または 53 週 (364 日または 371 日) で構成される週番号年を定義し、1 年の最初の週は、その年の最初の木曜日を含む週と指定されます。与えられた日付について、weekOfYear プロパティは日付がどの週に該当するかを示し、yearForWeekOfYear は対応する週番号年を提供します。
重要
weekOfYear と yearForWeekOfYear の値は、使用されるカレンダーによって異なります。たとえば、ISO 8601 カレンダーでは、週は月曜日に始まり、最初の木曜日を年の最初の週として決定します。ただし、北米で使用されているグレゴリオ暦では、週は日曜日に始まり、年の最初の土曜日を最初の週として決定します。
DateComponents で日付を指定するときに、通常は weekOfYear と組み合わせて週番号の年を使用できます。リスト 1 にこのアプローチを示します。これは、金曜日に始まった 2016 年の最初の週の最初の金曜日 (曜日 6) を指定する DateComponents インスタンスを作成します。したがって、この日付はグレゴリオ暦では 2016 年 1 月 1 日 です。ただし、ISO 8601 カレンダーでは、2016 年の最初の週は次の月曜日から始まります。つまり、2016 年の最初の週の最初の金曜日は、ISO 8601 カレンダーでは 2016 年 1 月 8 日 になります。
リスト 1 さまざまなカレンダーで yearForWeekOfYear date コンポーネントを指定して抽出します。
- let comps = DateComponents(weekday: 6, weekOfYear: 1, yearForWeekOfYear: 2016)
- let gregorianCalendar = Calendar(identifier: .gregorian)
- let gregorianDate = gregorianCalendar.date(from: comps)!
- let iso8601Calendar = Calendar(identifier: .iso8601)
- let iso8601Date = iso8601Calendar.date(from: comps)!
- let formatter = DateFormatter()
- formatter.dateStyle = .full
- formatter.calendar = gregorianCalendar
- print ("\(formatter.string(from: gregorianDate))") // "Friday, January 1, 2016"
- formatter.calendar = iso8601Calendar
- print ("\(formatter.string(from: iso8601Date))") // "Friday, January 8, 2016"
以下も見よ
月と年へのアクセス
var era: Int?
一世紀または世紀の数。
var year: Int?
一年または年数。
var quarter: Int?
四半期または四半期の数。
var month: Int?
一月または月の数。
var isLeapMonth: Bool?
これらのコンポーネントがうるう月を表す場合は true に設定します。
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ