Pythonで週番号を計算する

Pythonで特定の日付の週番号を計算してみます。

目次

  1. 週番号の定義は主に2種類ある
  2. ISO週番号を計算する方法

週番号の定義は主に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週です。

広告

Pythonの日付/時刻処理カテゴリの投稿