Pythonで週番号を計算する
Pythonで特定の日付の週番号を計算してみます。
目次
週番号の定義は主に2種類ある
1週間を区切りとして仕事をしていると、週を番号で表すことがあります。例えば、 「ウィーク18までに完成させてください。」 「はい・・・」 のように使われます。
この週番号の数え方には2種類あって、1つは欧州式(ISO8601、JIS X 0301)で、もう1つはアメリカ式です。
- ISO8601の週番号の定義
最初の木曜日を含む週を第1週とする。週の始まりは月曜日。
- アメリカ式の週番号の定義
1月1日を含む週を第1週とする。週の始まりは日曜日。
ISO週番号を計算する方法
Pythonではdatetimeモジュールにisocalendarというメソッドがあって、そのメソッドを使うとISO8601の週番号を計算できます。
T = D.isocalendar()
変数 |
内容 |
---|---|
D |
日付を表すdateオブジェクト、またはdatetimeオブジェクト。 |
T |
(ISO年, ISO週番号, ISO曜日)のタプル |
ISO曜日は、月曜日を1、火曜日を2・・・として曜日を表す整数です。
試してみました。
まず、本日の週番号を計算してみます。
>>> from datetime import date
>>> date.today()
datetime.date(2018, 4, 4)
>>> date.today().isocalendar()
(2018, 14, 3)
2018年4月4日は、14週の水曜日ということですね。
では、特定の日付を計算してみます。
>>> from datetime import date
>>> D = date(2016,1,1)
>>> D
datetime.date(2016, 1, 1)
>>> D.isocalendar()
(2015, 53, 5)
2016年1月1日は、ISO8601では2015年の53週ですが、アメリカ方式では2016年の1週です。
公開日
広告