2009-10-27

年の第一週を決めている国際規格 ISO8601

年の第一週は、「1 月 4 日を含む週」なんださうな。

これを決めているのが国際規格 ISO8601。日付と時刻の表記に関する国際規格で、正式名称は Data elements and interchange formats。「週」を決めているのは、この規格の一部にすぎない。Wikipedia に解説があったので、引用しませう。

年と週と曜日: YYYY-Www-D と表記する。ww は年内の暦週の番号で、年の第1週は 01、最終週は 52 または 53 となる。第1週は事実上1月4日を含む週に等しい。D は曜日を表し、月曜日が 1、日曜日は 7 である。

ISO 8601 - Wikipedia より引用

きっかけ

先日から、Google Calendar が週数を表示するやうになった。

ところが、2009-01-01 は 2008 年の第 1 週と表示されるのに、2010-01-01 は 2009 年の第 53 週と表示されてしまう。これはどういふことか?

悩んでいたら、sasuket 氏がコメントをくれた。ISO8601 なんじゃないか? と。

調べてみると、2009-01-04 は日曜日。ISO8601 では、曜日は月曜から始まるとされているから、2009 年は 1/1 から 1/4 までが第一週。1/5 以降が第二週になる。一方、2010-01-04 は月曜日。したがって、2010 年は 2010-01-04 を含む週を第一週とする。1/1〜1/3 は第 0 週になるのかな?

少し分からないことはあるけれど、Google Calendar がやろうとしていることは分かった。sasuket さん、ありがとう。

(注): 2009-01-01 を 2008 年の第 1 週にするのは、やっぱり Google Calendar のバグだよね?

No comments:

Post a Comment