Jump to content

英文维基 | 中文维基 | 日文维基 | 草榴社区

ISO week date

From Wikipedia, the free encyclopedia
Current week expressed according to ISO 8601 [refresh]
Date2024-11-23
Week2024-W47
Week with weekday2024-W47-6

The ISO week date system is effectively a leap week calendar system that is part of the ISO 8601 date and time standard issued by the International Organization for Standardization (ISO) since 1988 (last revised in 2019) and, before that, it was defined in ISO (R) 2015 since 1971. It is used (mainly) in government and business for fiscal years, as well as in timekeeping. This was previously known as "Industrial date coding". The system specifies a week year atop the Gregorian calendar by defining a notation for ordinal weeks of the year.

The Gregorian leap cycle, which has 97 leap days spread across 400 years, contains a whole number of weeks (20871). In every cycle there are 71 years with an additional 53rd week (corresponding to the Gregorian years that contain 53 Thursdays). An average year is exactly 52.1775 weeks long; months (112 year) average at exactly 4.348125 weeks/month.

An ISO week-numbering year (also called ISO year informally) has 52 or 53 full weeks. That is 364 or 371 days instead of the usual 365 or 366 days. These 53-week years occur on all years that have Thursday as 1 January and on leap years that start on Wednesday. The extra week is sometimes referred to as a leap week, although ISO 8601 does not use this term.

Weeks start with Monday and end on Sunday. Each week's year is the Gregorian year in which the Thursday falls. The first week of the year, hence, always contains 4 January. ISO week year numbering therefore usually deviates by 1 from the Gregorian for some days close to 1 January.

Examples of contemporary dates around New Year's Day
English short ISO
Sat 1 Jan 1977 1977-01-01 1976-W53-6
Sun 2 Jan 1977 1977-01-02 1976-W53-7
Sat 31 Dec 1977 1977-12-31 1977-W52-6
Sun 1 Jan 1978 1978-01-01 1977-W52-7
Mon 2 Jan 1978 1978-01-02 1978-W01-1
Sun 31 Dec 1978 1978-12-31 1978-W52-7
Mon 1 Jan 1979 1979-01-01 1979-W01-1
Sun 30 Dec 1979 1979-12-30 1979-W52-7
Mon 31 Dec 1979 1979-12-31 1980-W01-1
Tue 1 Jan 1980 1980-01-01 1980-W01-2
Sun 28 Dec 1980 1980-12-28 1980-W52-7
Mon 29 Dec 1980 1980-12-29 1981-W01-1
Tue 30 Dec 1980 1980-12-30 1981-W01-2
Wed 31 Dec 1980 1980-12-31 1981-W01-3
Thu 1 Jan 1981 1981-01-01 1981-W01-4
Thu 31 Dec 1981 1981-12-31 1981-W53-4
Fri 1 Jan 1982 1982-01-01 1981-W53-5
Sat 2 Jan 1982 1982-01-02 1981-W53-6
Sun 3 Jan 1982 1982-01-03 1981-W53-7
Notes:
  • Both years 1979 and 1979W start with the same day.
  • 1980 is a leap year. 1980W is 2 days shorter:
    • 1 day longer at the start,
    • 3 days shorter at the end.
  • 1981W begins three days before the end of 1980.
  • 1981W has 53 weeks and ends three days into 1982.

A precise date is specified by the ISO week-numbering year in the format YYYY, a week number in the format ww prefixed by the letter 'W', and the weekday number, a digit d from 1 through 7, beginning with Monday and ending with Sunday. For example, the Gregorian date Saturday, 23 November 2024 corresponds to day number 6 in the week number 47 of 2024, and is written as 2024-W47-6 (in extended form) or 2024W476 (in compact form). The ISO year is slightly offset to the Gregorian year; for example, Monday 30 December 2019 in the Gregorian calendar is the first day of week 1 of 2020 in the ISO calendar, and is written as 2020-W01-1 or 2020W011.

Relation with the Gregorian calendar

[edit]

The ISO week year number deviates from the Gregorian year number in one of three ways. The days differing are a Friday through Sunday, or a Saturday and Sunday, or just a Sunday, at the start of the Gregorian year (which are at the end of the previous ISO year) and a Monday through Wednesday, or a Monday and Tuesday, or just a Monday, at the end of the Gregorian year (which are in week 01 of the next ISO year). In the period 4 January to 28 December the ISO week year number is always equal to the Gregorian year number. The same is true for every Thursday.

First week

[edit]

The ISO 8601 definition for week 01 is the week with the first Thursday of the Gregorian year (i.e., of January) in it. The following definitions based on properties of this week are mutually equivalent, since the ISO week starts with Monday:

  • It is the first week with a majority (4 or more) of its days in January.
  • Its first day is the Monday nearest to 1 January.
  • It has 4 January in it. Hence the earliest possible first week extends from Monday 29 December (previous Gregorian year) to Sunday 4 January, the latest possible first week extends from Monday 4 January to Sunday 10 January.
  • It has the year's first working day in it, if Saturdays, Sundays and 1 January are not working days.

If 1 January is on a Monday, Tuesday, Wednesday or Thursday, it is in W01. If it is on a Friday, it is part of W53 of the previous year. If it is on a Saturday, it is part of the last week of the previous year which is numbered W52 in a common year and W53 in a leap year. If it is on a Sunday, it is part of W52 of the previous year.

Week date peculiarities at the beginning and end of a year
Dominical
letter
[a]
Days at the start of January Effect Days at the end of December[a]
1
Mo
2
Tu
3
We
4
Th
5
Fr
6
Sa
7
Su
W01-1[b] Week of
01 Jan
... Week of
31 Dec[a]
1[c]
Mo
2
Tu
3
We
4
Th
5
Fr
6
Sa
7
Su
G (F) 01 02 03 04 05 06 07 01 Jan W01 ... W01 31 (30)    (31)
F (E) 01 02 03 04 05 06 31 Dec 30 (29) 31 (30)    (31)
E (D) 01 02 03 04 05 30 Dec W01 (W53) 29 (28) 30 (29) 31 (30)    (31)
D(C) 01 02 03 04 29 Dec W53 28 (27) 29 (28) 30 (29) 31 (30)    (31)
C (B) 01 02 03 04 Jan W53 W52 27 (26) 28 (27) 29 (28) 30 (29) 31 (30)    (31)
B (A) 01 02 03 Jan W52 (W53)[d] 26 (25) 27 (26) 28 (27) 29 (28) 30 (29) 31 (30)    (31)
A (G) 01 02 Jan W52 W52 (W01) 25 (31) 26 (25) 27 (26) 28 (27) 29 (28) 30 (29) 31 (30)

Notes

  1. ^ a b c Partial dates in parentheses, ( ), apply to leap years.
  2. ^ First date of the first week in the year.
  3. ^ First date of the last week in the year.
  4. ^ W53 for the week of 1 January in common years starting on Saturday (B) applies only if the previous year was a leap year starting on Thursday (DC).

Last week

[edit]

The last week of the ISO week-numbering year, i.e. W52 or W53, is the week before W01 of the next year. This week's properties are:

  • It has the year's last Thursday in it.
  • It is the last week with a majority (4 or more) of its days in December.
  • Its middle day, Thursday, falls in the ending year.
  • Its last day is the Sunday nearest to 31 December.
  • It has 28 December in it.

Hence the earliest possible last week extends from Monday 22 December to Sunday 28 December, the latest possible last week extends from Monday 28 December to Sunday 3 January.

If 31 December is on a Monday, Tuesday, or Wednesday it is in W01 of the next year. If it is on a Thursday, it is in W53 of the year just ending. If on a Friday it is in W52 of the year just ending in common years and W53 in leap years. If on a Saturday or Sunday, it is in W52 of the year just ending.

Summary of last weeks
01 Jan W01-1 Common year (365 − 1 or + 6) Leap year (366 − 2 or + 5)
Mon 01 Jan G +0 −1 GF +0 −2
Tue 31 Dec F +1 −2 FE +1 −3
Wed 30 Dec E +2 −3 ED +2 +3
Thu 29 Dec D +3 +3 DC +3 +2
Fri 04 Jan C −3 +2 CB −3 +1
Sat 03 Jan B −2 +1 BA −2 +0
Sun 02 Jan A −1 +0 AG −1 −1

Weeks per year

[edit]

The long years, with 53 weeks in them, can be described by any of the following equivalent definitions:

  • any year starting on Thursday (dominical letter D or DC) and any leap year starting on Wednesday (ED)
  • any year ending on Thursday (D, ED) and any leap year ending on Friday (DC)
  • years in which 1 January or 31 December are Thursdays

All other week-numbering years are short years and have 52 weeks.

The number of weeks in a given year is equal to the corresponding week number of 28 December, because it is the only date that is always in the last week of the year since it is a week before 4 January which is always in the first week of the following year.

Using only the ordinal year number y, the number of weeks in that year can be determined from a function, , that returns the day of the week of 31 December:[1]

Long years per 400-year leap-cycle, highlighted ones also have 29 Feb in them; adding 2000 gives current year numbers
Subcycle +6 +5 +6 +5 +6
281 004 009 015 020 026
282 032 037 043 048 054
283 060 065 071 076 082
401 088 093 099
105 111 116 122
284 128 133 139 144 150
285 156 161 167 172 178
402 184 189 195
201 207 212 218
286 224 229 235 240 246
287 252 257 263 268 274
403 280 285 291 296
303 308 314
288 320 325 331 336 342
289 348 353 359 364 370
2810 376 381 387 392 398

On average, a year has 53 weeks every 40071 = 5.6338... years; there are 43 times when these long years are 6 years apart, 27 times when they are 5 years apart, and once they are 7 years apart (between years 296 and 303). The Gregorian years corresponding to these 71 long years can be subdivided as follows:

The Gregorian years corresponding to the other 329 short years (neither starting nor ending with Thursday) can also be subdivided as follows:

  • 70 are Gregorian leap years.
  • 259 are Gregorian common years.

Thus, within a 400-year cycle:

  • 27 week years are 5 days longer than the month years (371 − 366), 6.75%.
  • 44 week years are 6 days longer than the month years (371 − 365), 11%.
  • 70 week years are 2 days shorter than the month years (364 − 366), 17.5%.
  • 259 week years are 1 day shorter than the month years (364 − 365), 64.75%.

The table shows the long years in a 400-year cycle. There are 28 years, i.e. a Julian solar cycle, between long years in the same column except when the century changes, when there are 40 years between the long years in the next century and the last completely filled row (or subcycle) of the previous century. There are ten regular subcycles of 28 years each and three subcycles of 40 years each. The 40-year subcycles 085–124 and 181–220 are equal, but the middle long year within the subcycle 277–316 would have to occur in 297 instead of 296 to be also the same. This illustrates the only, abnormal 7-year gap between long years.

Weeks per month

[edit]

The ISO standard does not define any association of weeks to months. A date is either expressed with a month and day-of-the-month, or with a week and day-of-the-week, never a mix.

Weeks are a prominent entity in accounting where annual statistics benefit from regularity throughout the years. Therefore, a fixed length of 13 weeks per quarter is usually chosen in practice. These quarters may then be subdivided into 5 + 4 + 4 weeks, 4 + 5 + 4 weeks or 4 + 4 + 5 weeks. The final quarter has 14 weeks in it when there are 53 weeks in the year.

When it is necessary to allocate a week to a single month, the rule for first week of the year might be applied, although ISO 8601-1 does not consider this case explicitly. The resulting pattern would be irregular. There would be 4 months of 5 weeks per normal, 52-week year, or 5 such months in a long, 53-week year. Although the days of a month (except February) always belong to 5 and sometimes 6 different weeks, there would never be 6 weeks belonging to a single month. The 5-week months would meet one of the following three criteria:

  • The first day of the month is a ...
    • Thursday and the month has 29 through 31 days.
    • Wednesday and the month has 30 or 31 days.
    • Tuesday and the month has 31 days, ending on a Thursday.
  • Equivalently, the last day of the month is a ...
    • Thursday and it is not the 28th.
    • Friday and it is not in February.
    • Saturday and it is the 31st.

Dates with fixed week number

[edit]
Overview of dates with a fixed week number
Month Days Weeks
January 04 11 18 25 W01 – W04
February 01 08 15 22 29 W05 – W09
Later dates differ in any leap year starting on Thursday:
March 01 08 15 22 29 W09 – W13
April 05 12 19 26 W14 – W17
May 03 10 17 24 31 W18 – W22
June 07 14 21 28 W23 – W26
July 05 12 19 26 W27 – W30
August 02 09 16 23 30 W31 – W35
September 06 13 20 27 W36 – W39
October 04 11 18 25 W40 – W43
November 01 08 15 22 29 W44 – W48
December 06 13 20 27 W49 – W52

For all years, 8 days have a fixed ISO week number (between W01 and W08) in January and February. With the exception of leap years starting on Thursday, dates with fixed week numbers occur in all months of the year (for 1 day of each ISO week W01 to W52).

During leap years starting on Thursday (i.e. the 13 years numbered 004, 032, 060, 088, 128, 156, 184, 224, 252, 280, 320, 348, 376 in a 400-year cycle), the ISO week numbers are incremented by 1 from March to the rest of the year. This last occurred in 1976 and 2004, and will next occur in 2032. These exceptions are happening between years that are most often 28 years apart, or 40 years apart for 3 pairs of successive years: from year 088 to 128, from year 184 to 224, and from year 280 to 320. They will never be 12 years apart. The only leap years that can occur 12 years apart are leap years starting on Sunday, Tuesday, Wednesday and Friday.

The day of the week for these days are related to the "Doomsday" algorithm, which calculates the weekday that the last day of February falls on. The dates listed in the table are all one day after the Doomsday, except that in January and February of leap years the dates themselves are Doomsdays. In leap years, the week number is the rank number of its Doomsday.

Equal weeks

[edit]

Some pairs and triplets of ISO weeks have the same days of the month:

  • W02 and W41 in common years
  • W03 with W42 in common years and with W15 and W28 in leap years
  • W04 and W43 in common years and with W16 and W29 in leap years
  • W05 and W44 in common years
  • W06 with W10 and W45 in common years and with W32 in leap years
  • W07 with W11 and W46 in common years and with W33 in leap years
  • W08 with W12 and W47 in common years and with W34 in leap years
  • W10 and W45
  • W11 and W46
  • W12 and W47
  • W15 and W28
  • W16 and W29
  • W37 and W50
  • W38 and W51

Some other weeks, i.e. W09, W19 through W26, W31 and W35 never share their days of the month ordinals with any other week of the same year.

Advantages

[edit]
  • All weeks have exactly 7 days, i.e. there are no fractional weeks.
  • Every week belongs to a single year, i.e. there are no ambiguous or double-assigned weeks.
  • The date directly tells the weekday.
  • All week-numbering years start with a Monday and end with a Sunday.
  • When used by itself without using the concept of month, all week-numbering years are the same except that some years have a week 53 at the end.
  • The weeks are the same as used with the Gregorian calendar.

Differences to other calendars

[edit]

Solar astronomic phenomena, such as equinoxes and solstices, vary in the Gregorian calendar over a range spanning three days, over the course of each 400-year cycle, while the ISO Week Date calendar has a range spanning 9 days. For example, there are March equinoxes on 1920-W12-6 and 2077-W11-5 in UT.

The year number of the ISO week very often differs from the Gregorian year number for dates close to 1 January. For example, 29 December 1986 is ISO 1987-W01-1, i.e., it is in year 1987 instead of 1986. A programming bug confusing these two year numbers is probably the cause of some Android users of Twitter being unable to log in around midnight of 29 December 2014 UTC.[2]

The ISO week calendar relies on the Gregorian calendar, which it augments, to define the new year day (Monday of week 01). As a result, extra weeks are spread across the 400-year cycle in a complex, seemingly random pattern. (However, a relatively simple algorithm to determine whether a year has 53 weeks from its ordinal number alone is shown under "Weeks per year" above.) Most calendar reform proposals using leap week designs strive to simplify and harmonize this pattern, some by choosing a different leap cycle (e.g. 293 years).

Not all parts of the world consider the week to begin with Monday. For example, in some Muslim countries, the normal work week begins on Saturday, while in Israel it begins on Sunday. In much of the Americas, although the work week is usually defined to start on Monday, the calendar week is often considered to start on Sunday.

Algorithms

[edit]

Calculating the week number from an ordinal date

[edit]

The week number (WW or woy for week of year) of any date can be calculated, given its ordinal date (i.e. day of the year, doy or DDD, 1–365 or 366) and its day of the week (D or dow, 1–7). When using serial numbers for dates (e.g. in spreadsheets), doy is the serial number for a date minus the serial number for 31st December of the previous year, or alternatively minus the serial number for 1st January the same year plus one.

Algorithm
  1. Subtract the weekday number from the ordinal day of the year.
  2. Add 10.
  3. Divide by 7, discard the remainder.
    • If the week number thus obtained equals 0, it means that the given date belongs to the preceding (week-based) year.
    • If a week number of 53 is obtained, one must check that the date is not actually in week 1 of the following year.
Formula

Calculating the week number from a month and day of the month

[edit]

If the ordinal date is not known, it can be computed from the month (MM or moy) and day of the month (DD or dom) by any of several methods; e.g. using a table such as the following.

Offset for the day of the month to get ordinal day of the year
Month Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Add
Common year 0 31 59 90 120 151 181 212 243 273 304 334 dom
Leap year 60 91 121 152 182 213 244 274 305 335
Example
Find the week number of Saturday 5th November 2016 (leap year):
  • Find the ordinal day number first:
moy = 11
dom = 5
leap = 1
add = 305, from table lookup
doy = 305 + 5 = 310.
  • Alternatively, use spreadsheet serial day numbers instead:
off = 42369, i.e. 31st December 2015
day = 42679
doy = 42679 − 42369 = 310.
  • Finally, find the week number:
dow = 6, i.e. Saturday
woy = (10 + 310 − 6) div 7
woy = (320 − 6) div 7
woy = 314 div 7 = 44.

Calculating an ordinal or month date from a week date

[edit]
Algorithm
  1. Multiply the week number by 7.
  2. Then add the weekday number.
  3. From this sum subtract the correction for the year:
    • Get the weekday of 4 January.
    • Add 3.
  4. The result is the ordinal date, which can be converted into a calendar date.
    • If the ordinal date thus obtained is zero or negative, the date belongs to the previous calendar year;
    • if it is greater than the number of days in the year, it belongs to the following year.
Formula

Other week numbering systems

[edit]

The US system has weeks from Sunday through Saturday, and partial weeks at the beginning and the end of the year, i.e. 52 full and 1 partial week of 1 or 2 days if the year starts on Sunday or ends on Saturday, 52 full and 2 single-day weeks if a leap year starts on Saturday and ends on Sunday, otherwise 51 full and 2 partial weeks. An advantage is that no separate year numbering like the ISO year is needed. Correspondence of lexicographical order and chronological order is preserved (just like with the ISO year-week-weekday numbering), but partial weeks make some computations of weekly statistics or payments inaccurate at the end of December or the beginning of January or both.

The US broadcast calendar designates the week containing 1 January (and starting Monday) as the first of the year, but otherwise works like ISO week numbering without partial weeks. Up to six days of the previous December may be part of the first week of the year.

A mix of those, wherein weeks start Sunday and "containing 1 January" defines the first week, is used in US accounting, resulting in a system with years having also 52 or 53 weeks.

References

[edit]
  1. ^ Gent, Robert H. "The Mathematics of the ISO 8601 Calendar". Archived from the original on 2018-12-24. Retrieved 2011-08-17.
  2. ^ "Twitter kicks Android app users out for five hours due to 2015 date bug". the Guardian. 29 December 2014.
[edit]