Pythonで営業日を取得
Pythonで営業日を取得
Pythonで営業日を取得するメモ.
環境
-
Windows10
-
Python 3.5.3
-
workdyas 1.4
-
-
営業日を取得
workdyas
モジュールがあるので,pipからインストールする.
pip install workdays
指定期間の営業日日数を取得
workdays.networkdays(start_date, end_date)
関数を使う.
2017年5月1日(月)から31日までの土日を除いた日数を計算する.
import datetime
import workdays
start_date = datetime.datetime(2017, 5, 1)
end_date = datetime.datetime(2017,5,31)
workdays.networkdays(start_date, end_date)
> 23
d日後の営業日を取得
workdays.workday(start_date, days=d)
関数を使う.
2017年5月1日(月)から5営業日後の日付を取得してみる(5月8日(月)を取得).
import datetime
import workdays
start_date = datetime.datetime(2017,5,1)
workdays.workday(start_date, days=5)
> datetime.datetime(2017, 5, 8, 0, 0)
内包表記を使って5日間を取得. 土日を除いた2, 3,4,5,8日が取得できる. 注意として,「憲法記念日」,「みどりの日」や「こどもの日」などの祝日は除外されない.
[workdays.workday(start_date, days=d) for d in range(1, 5+1)]
> [datetime.datetime(2017, 5, 2, 0, 0), datetime.datetime(2017, 5, 3, 0, 0), datetime.datetime(2017, 5, 4, 0, 0), datetime.datetime(2017, 5, 5, 0, 0), datetime.datetime(2017, 5, 8, 0, 0)]
holidays
オプションに祝日のdatetime.datetime
型のリストを設定することで祝日を除外した営業日を取得できる.
祝日情報を取得
まず,祝日情報を取得する必要がある. 今回は,内閣府の祝日csvから取得する. 詳細は以下にある.
祝日を除いた営業日を取得
注意として,holidays
にしている祝日情報は, datetime.datetime
型のリストにしておく必要がある.
同様にして,2017年5月1日から5営業日間を取得する. 今回は,3日「憲法記念日」,4日「みどりの日」,5日「こどもの日」の祝日と土曜日7日,日曜日8日が除外されて,5営業日を取得できる.
# 祝日情報(datetime.datetime型のリスト)を取得
holidays = nbstockutils.date.get_holidays_datetime()
[workdays.workday(start_date, days=d, holidays=holidays) for d in range(1, 5 + 1)]
> [datetime.datetime(2017, 5, 2, 0, 0),
datetime.datetime(2017, 5, 8, 0, 0),
datetime.datetime(2017, 5, 9, 0, 0),
datetime.datetime(2017, 5, 10, 0, 0),
datetime.datetime(2017, 5, 11, 0, 0)]
参考リンク