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(紧凑形式)。

2024年11月
周数 周一 周二 周三 周四 周五 周六 周日

第44周 28 29 30 31 01 02 03

第45周 04 05 06 07 08 09 10

第46周 11 12 13 14 15 16 17

第47周 18 19 20 21 22 23 24

第48周 25 26 27 28 29 30 01

与格里历关系

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

元旦前后的当时日期举例
日期 注解
ISO闰周历(年) 格里历
2004-W53-6 2005年1月1日
星期六
2005-01-01
2004-W53-7 2005年1月2日
星期日
2005-01-02
2005-W52-6 2005年12月31日
星期六
2005-12-31
2007-W01-1 2007年1月1日
星期一
2007-01-01 两者从同一天开始
2007-W52-7 2007年12月30日
星期日
2007-12-30
2008-W01-1 2007年12月31日
星期一
2007-12-31
2008-W01-2 2008年1月1日
星期二
2008-01-01 格里历的2008年是闰年,ISO年的2008年则短了2天。在开始时多了1天,结束时少了3天。
2008-W52-7 2008年12月28日
星期日
2008-12-28 ISO年的2009年开始的3天在格里历是2008年结束前的最后3天。
2009-W01-1 2008年12月29日
星期一
2008-12-29
2009-W01-2 2008年12月30日
星期二
2008-12-30
2009-W01-3 2008年12月31日
星期三
2008-12-31
2009-W01-4 2009年1月1日
星期四
2009-01-01
2009-W53-4 2009年12月31日
星期四
2009-12-31 ISO年的2009年有53周,结束前的最后3天进入了格里历的2010年。
2009-W53-5 2010年1月1日
星期五
2010-01-01
2009-W53-6 2010年1月2日
星期六
2010-01-02
2009-W53-7 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星期的年,可以有下列与定义等效的叙述:

其它所有的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个长年的对应关系可以细分如下:

格里历对应于短年的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)从三月份起周数加一。

周数 日期 01
08
15
22
29
02
09
16
23
30
03
10
17
24
31
04
11
18
25
--
05
12
19
26
--
06
13
20
27
--
07
14
21
28
--
主日字母星期表
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 20
00
16
21
01
17
22
02
18
23
03
19
年的后2位
数 mod 28

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

c = 20,y = 32 mod 28 = 4,d = 1,m = 10;
DL = (2004/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日周一。

参考文献

注解

外部链接