ISO周日历

ISO周日历系统是ISO 8601日期和时间标准的一部分，是一种闰周历系统。这个系统主要用在政府和商务的会计年度，用以维持时序。这个系统依据格里历的年度中特定的一个周日，决定该年是否要增加一个星期。

格里历的置闰循环是400年97个闰日，包含20,871个完整的星期。ISO周日历在400年的循环中有71年会有额外的第53周，一年的平均长度是52.1775周；平均每个月有4.348125个星期。

一个ISO周数年（也可以简称为ISO年）有52或53个完整的星期，也就是以364天或371天取代了常用的365或366天。这额外增加出来的一个星期称为闰周，然而在ISO 8601并没有这个名词。每个星期从星期一开始。每一周所属年份取决于周四在公历中属于哪一年，所以每年的第一个星期包含当年的第一个星期四（并且总是包含1月4日）。ISO周的年编号因此会稍微偏离1月1日几天。

一个日期可以依据ISO星期编号年的格式YYYY、周数的格式ww前面加上字母W，和d从1到7的一个数位，星期一是一周的开头，星期日是结尾。例如，格里历2006年12月31日可以写成2006年-W52-7（扩展形式）或2006W527（紧凑形式）。

## 与格里历关系

如果格里历年的第一天是星期五、星期六和星期日，或是星期六和星期日，或正好就是星期日是格里历年的第一天（在ISO年是去年的最后一天）；又或者是星期一、星期二和星期三，或者是星期一和星期二，或正好就是星期一在格里历年的最后一天（是下一个ISO年的第一个星期），ISO周数年的年份会偏离格里历的年份。从1月4日至12月28日，ISO周数年和所有星期4的周数都会与格里历相同。

日期｜注解

ISO闰周历（年）｜格里历

2005年1月1日 星期六｜2005-01-01

2005年1月2日 星期日｜2005-01-02

2005年12月31日 星期六｜2005-12-31

2007年1月1日 星期一｜2007-01-01｜两者从同一天开始

2007年12月30日 星期日｜2007-12-30

2007年12月31日 星期一｜2007-12-31

2008年1月1日 星期二｜2008-01-01｜格里历的2008年是闰年，ISO年的2008年则短了2天。在开始时多了1天，结束时少了3天。

2008年12月28日 星期日｜2008-12-28｜ISO年的2009年开始的3天在格里历是2008年结束前的最后3天。

2008年12月29日 星期一｜2008-12-29

2008年12月30日 星期二｜2008-12-30

2008年12月31日 星期三｜2008-12-31

2009年1月1日 星期四｜2009-01-01

2009年12月31日 星期四｜2009-12-31｜ISO年的2009年有53周，结束前的最后3天进入了格里历的2010年。

2010年1月1日 星期五｜2010-01-01

2010年1月2日 星期六｜2010-01-02

2010年1月3日 星期日｜2010-01-03

### 第一周

ISO 8601定义包含当年第一个星期四的那一周是第一个星期。

基于这个定义，下列的属性有相互的等价性：

- 第一周至少有4天在1月里面。
- 该年的“第一天”是最靠近该年1月1日的星期一。
- 第一个星期最早是12月29日至1月4日，最晚是1月4日至1月10日。
- 如果1月1日和星期六与星期日不是工作日，1月4日就会是第一个工作日。

如果1月1日是星期一、二、三、或四，它就是第一周，如果1月1日是星期五，它就是去年度的第53周；如果是星期六，它是去年第52周的一部分（如果上一年是格里历的闰年，它就是第53周的一部分）；如果是星期日，它是去年第52周的部分。

### 最后一周

ISO周日历的最后一星期是第52周或53周，是下一年的第一周之前。这一周的特质如下：

- 格里历的最后一个星期四会在这一周内。
- 最后一周有至少有4天在12月里面。
- 它的中间日，星期四，一定在年尾。
- 最接近格里历年结束的是12月31日星期日。
- 12月28日一定在年度内。因为最后一周的日期最晚是12月28日至1月3日，最早是12月22日至12月28日。

如果12月31日是星期一、二、或三，它是下年度的第一周；如果是星期四，它会是结束结束的第53周；如果是星期五，它是年度的第52周（或是在闰年的第53周）；如果是星期六或星期日，它是结束年度的第52周。

### 每年的星期

长年，是有53星期的年，可以有下列与定义等效的叙述：

- 任何从星期四开始的年（主日字母D或DC）和以星期三开始的闰年（ED）。
- 任何以星期四结束的年（D、ED）和以星期五结束的闰年（DC）
- 在1月1日和12月31日（在平年）或其中之一（在闰年）是星期四的年度。

其它所有的ISO周日历的年都是只有52周的短年。

在给定的年度中，12月28日对应的周数就是当年的星期数目。

平均而言，每5.6388……年（=7/365.2425 – 52 X 7 = 400/71）有一年是53周的长年。

下面的71年是400年循环（加上2,000就是本世纪的年度）中有53周的年度（需要注意闰年有2月29日），未列出的年份仅有52周：

004｜009｜015｜020｜026｜28

032｜037｜043｜048｜054｜56

060｜065｜071｜076｜082｜84

088｜093｜099｜96

105｜111｜116｜122｜124

128｜133｜139｜144｜150｜152

156｜161｜167｜172｜178｜180

184｜189｜195｜192

201｜207｜212｜218｜220

224｜229｜235｜240｜246｜248

252｜257｜263｜268｜274｜276

280｜285｜291｜296｜288

303｜308｜314｜316

320｜325｜331｜336｜342｜344

348｜353｜359｜364｜370｜372

376｜381｜387｜392｜398｜400

5｜6｜5｜6｜6｜28

ISO的常年有43次间隔6年，27次间隔5年，有一次间隔7年（从296年到303年）。

格里历年与这71个长年的对应关系可以细分如下：

- 27个格里历的闰年（366天，在儒略历也是闰年）。Gregorian leap years (366
- 13个开始于星期四，结束在星期五，和
- 14个开始于星期三，结束在星期四;
- 44个平年（365天，相较于儒略历也是平年）开始和结束都是星期四。

格里历对应于短年的ISO周日历（无论开始或结束都不是星期四）的其余329年，可以细分叙述如下：

- 有70个闰年（对应的儒略历年也都是闰年），和
- 259个平年（但是儒略历有3年是闰年：100、200、和300）。

因此，在400年的循环中：

- 27个ISO周日历的长年（53周或371天）比对应的格里历闰年（366天）多5天。
- 44个ISO周日历的长年（53周或371天）比对应的格里历平年（365天）多6天。
- 70个ISO周日历的短年（52周或364天）比对应的格里历闰年（366天）少2天。
- 259个ISO周日历的短年（52周或364天）比对应的格里历平年（365天）少1天。

### 每个月的星期

ISO的标准并未定义任何周与月相关联的协定。月中的每一天和月，也都以周和周日表达，且不会混淆不清。

在会计年度中，周年统计受益于星期是一个显著实体的规则。因此，在实务中通常每一季固定有13个星期，并且分割成5+4+4周、4+5+4周、或4+4+5周。在53个星期的长年中，最后一季有14个星期。

虽然ISO 8601认为没有这样的需要，但在有必要将星期分配到一个月中的时候，可以应用的规则是从每年的第一个星期开始。由这种模式产生的结果，会是不规则的。有4个月（或在长年有5个月）会有5个星期，但是至少有29天是从星期四开始，30天是从星期三开始，31天从星期二开始。

### 固定周数的日期

每年的一月和二月都有四天的周数是固定的。除外以星期四开始的闰年(三月份起周数加一)，每个月都有四到五天的周数是固定的(详见下表)。

月份｜日期｜周数

01月｜04｜11｜18｜25｜01–04

02月｜01｜08｜15｜22｜05–08

03月｜01｜08｜15｜22｜29｜09–13

04月｜05｜12｜19｜26｜14–17

05月｜03｜10｜17｜24｜31｜18–22

06月｜07｜14｜21｜28｜23–26

07月｜05｜12｜19｜26｜27–30

08月｜02｜09｜16｜23｜30｜31–35

09月｜06｜13｜20｜27｜36–39

10月｜04｜11｜18｜25｜40–43

11月｜01｜08｜15｜22｜29｜44–48

12月｜06｜13｜20｜27｜49–52

## 优点

- 所有星期(周)都有7天，即没有任何一个星期是不完整的。
- 每个星期都只属于同一年中，即没有不明确或属于两年中的星期。
- 日期直接对应于工作日。
- 每一星期都是从周一开始，到周日结束。
- 如果单独使用星期而不使用月的概念时，则所有星期的序号在每一年都是相同的，只是有些年份的末尾有第53周。
- 星期与格里历相同。

## 转换

查表法

主日字母星期表不仅可以用来查找格里历(CD)任意一年的主日字母(DL)和任意一天的日字母(dl)及星期(w)，而且可以查找ISO周日历(WD)的周数(n)及其相应的日期(D)，因此可以利用该表来实现这两种日历的相互转换。

位于世纪(c)列和年(y)行交叉处(c, y)的字母就是该年的主日字母(本世纪的主日字母位于A列)，而位于日列(d)和月(m)行交叉点(d, m)的字母就是该日的字母，知道了主日字母就可以确定其它日字母的星期。由字母D就可以查到周数固定的日期，当遇到以周四开始的闰年(DC)从三月份起周数加一。

周数｜日期｜0108152229｜0209162330｜0310172431｜04111825--｜05121926--｜06132027--｜07142128--｜主日字母星期表

01–04｜40–43｜01月｜10月｜A｜B｜C｜D｜E｜F｜G｜00｜06｜12｜17｜23

14–17｜27–30｜04月｜07月｜G｜A｜B｜C｜D｜E｜F｜01｜07｜12｜18｜24

36–39｜49–52｜09月｜12月｜F｜G｜A｜B｜C｜D｜E｜02｜08｜13｜19｜24

23–26｜06月｜E｜F｜G｜A｜B｜C｜D｜03｜08｜14｜20｜25

05–08｜09–13｜44–48｜02月｜03月｜11月｜D｜E｜F｜G｜A｜B｜C｜04｜09｜15｜20｜26

31–35｜08月｜C｜D｜E｜F｜G｜A｜B｜04｜10｜16｜21｜27

18–22｜05月｜B｜C｜D｜E｜F｜G｜A｜05｜11｜16｜22｜00

年的前2位数 mod 4｜200016｜210117｜220218｜230319｜年的后2位数 mod 28

例一查找2032年10月1日的星期及周数:

c = 20，y = 32 mod 28 = 4，d = 1，m = 10。

DL = (20，04/04) = DC，dl = (1，10) = A，D = (4，10)(40 + 1)。

C = 周日，A = 周五，D = 周一(41)。

n = 41 - 1 = 40，w = 5。

WD = 2032–W40–5。

例二查找1980–W40–1的日期:

c = 19，y = 80 mod 28 = 24，n = 40，w = 1 = 周一。

DL = (19，24/24) = FE，D = (4，10)。

E = 周日，D = 周六(40)，F = (6，10)周一(41) = (-1，10)(29，9)周一(40)。

CD = 1980年9月29日周一。

## 外部链接

- The Mathematics of the ISO 8601 Calendar
- ISO week date calendar
- Another website giving you the current week number
- ISO Date and time format FAQ