Instance Property インスタンスプロパティ

yearForWeekOfYear

The ISO 8601 week-numbering year. ISO 8601 週番号年。

Declaration 宣言

var yearForWeekOfYear: Int { get set }

Discussion 議論

The Gregorian calendar defines a week to have 7 days, and a year to have 365 days, or 366 in a leap year. However, neither 365 or 366 divide evenly into a 7-day week, so it is often the case that the last week of a year ends on a day in the next year, and the first week of a year begins in the preceding year. To reconcile this, ISO 8601 defines a week-numbering year, consisting of either 52 or 53 full weeks (364 or 371 days), such that the first week of a year is designated to be the week containing the first Thursday of the year. For a given date, the weekOfYear property indicates which week the date falls in, and yearForWeekOfYear provides the corresponding week-numbering year. グレゴリオ暦は、週に7日を持つ、そして年に365、または閏年で366日を持つと定義します。しかしながら、365または366のどちらも均一に7日週へと分割されません、それでしばしばある年の最後の週が次の年のある日で終わる、そしてある年の最初の週が前の年に始まる場合があります。これを調整するために、ISO 8601は週番号年を定義します、丸々52または53週(364または371日)のどちらかから成っていて、ある年の最初の週がその年の最初の木曜日を含んでいる週であるように指定されます。ある与えられた日付に対して、weekOfYearプロパティはその日付が範囲に収まるのはどの週かを指し示します、そしてyearForWeekOfYearは該当する週番号年を提供します。

You can use the week-numbering year when specifying a date with NSDateComponents, usually in combination with the weekOfYear. Listing 1 shows this approach. It creates an NSDateComponents instance specifying the first Friday (weekday 6) of the first week of 2016, which started on a Friday. Therefore, this date is January 1, 2016 in the Gregorian calendar. However, on the ISO 8601 calendar, the first week of 2016 begins on the following Monday. This means the first Friday in the first week of 2016 is January 8, 2016 on the ISO 8601 calendar. あなたは、ある日付をNSDateComponentsで、通常はweekOfYearと組み合わせて、指定する場合に、週番号年を使用できます。コード出力 1 は、この取り組みを示します。それは、あるNSDateComponentsインスタンスを、2016年の最初の週の最初の金曜日(週日 6)を指定して作成します、それは金曜日で始まりました。したがって、この日付はグレゴリオ暦で2016年、1月1日です。しかしながら、ISO 8601カレンダーでは、2016年の最初の週は次に来る月曜日で開始します。これは、2016年の最初の週における最初の金曜日が、ISO 8601カレンダーでは2016年、1月8日であることを意味します。

Listing 1 Specifying and extracting the yearForWeekOfYear date component in different calendars. コード出力 1 yearForWeekOfYear日付構成要素を異なるカレンダーにおいて指定および抽出する。

let comps = NSDateComponents()comps.weekday = 6
comps.weekOfYear = 1
comps.yearForWeekOfYear = 2016
let gregorianCalendar = NSCalendar(identifier: .gregorian)!
let gregorianDate = gregorianCalendar.date(from: comps as DateComponents)!
let iso8601Calendar = NSCalendar(identifier: .ISO8601)!
let iso8601Date = iso8601Calendar.date(from: comps as DateComponents)!


let formatter = DateFormatter()
formatter.dateStyle = .full
formatter.calendar = gregorianCalendar as Calendar
print ("\(formatter.string(from: gregorianDate))") // "Friday, January 1, 2016"
formatter.calendar = iso8601Calendar as Calendar
print ("\(formatter.string(from: iso8601Date))") // "Friday, January 8, 2016"

See Also 参照

Accessing Years and Months 年と月にアクセスする