概要: 今回Pythonのdatetime
とjpholiday
を使って、いつ給料日か判定する仕組み(payday
関数)をつくった。datetime
は日にちにかんするモジュールであり、これはPythonの標準ライブラリの1つである。たいしてjpholiday
は日本の祝日を調べるときに使うモジュールであり、pip
からインストールしなければならない。この2つをインポートして給料日がいつなのか調べることができる。
まずモジュールの説明、標準ライブラリの説明、インストールの仕方を勉強する。そのあとにpayday
関数の論理(ロジック)を解説する。次にdatetime
とjpholiday
を使って「祝日でなくかつ平日である日」という条件をつくる。最後にpayday
関数のプログラム全体を解説する。
#ある年の給料日がいつなのか表示するpayday関数 import datetime as dt import jpholiday as jp def payday(year, initial_day): for month in range(1, 13): day = initial_day week = {0: '(月)', 1: '(火)', 2:'(水)', 3:'(木)', 4:'(金)', 5:'(土)', 6:'(日)'} while(True): date_month = dt.date(year, month, day) weekday_month = date_month.weekday() is_holiday_month = jp.is_holiday(date_month) if (is_holiday_month is False) and (weekday_month != 5 ) and (weekday_month != 6): break day-= 1 print(str(year) + '年' +str(month) + '月' + str(day) + '日' + week[weekday_month]) #2019年の15日振込の場合 payday(2019, 15) """ 2019年1月15日(火) 2019年2月15日(金) 2019年3月15日(金) 2019年4月15日(月) 2019年5月15日(水) 2019年6月14日(金) 2019年7月12日(金) 2019年8月15日(木) 2019年9月13日(金) 2019年10月15日(火) 2019年11月15日(金) 2019年12月13日(金) """ #2019年の25日振込の場合 payday(2019, 25) """ 2019年1月25日(金) 2019年2月25日(月) 2019年3月25日(月) 2019年4月25日(木) 2019年5月24日(金) 2019年6月25日(火) 2019年7月25日(木) 2019年8月23日(金) 2019年9月25日(水) 2019年10月25日(金) 2019年11月25日(月) 2019年12月25日(水) """
ここで学ぶこと
- モジュール、パッケージ
- 標準ライブラリ
- モジュールのインストール
- モジュールのインポート
datetime
jpholiday
for
while
,break
if
- 辞書型
- はじめに: 給料日がいつなのか知りたい!
- モジュールについて
- 標準ライブラリ
- モジュールのインストール
- モジュールのインポート
- payday関数のロジックについて
- 条件「祝日でなくかつ平日である」を書く
- payday関数のプログラム
- 最後に
- 改善点
- 応用編
- 追記 2019/07/29 月末の支払い日・ある月から一年間の支払日の表示