Pythonで月の日数を求める

Pythonで月の日数が必要になったのですが、なかなか良い方法がわかりませんでした。 調べて行き着いた方法をまとめておきます。 月ごとの日数は基本決まっていますが、うるう年の考慮などを入れるとなかなかややこしいです。 先人たちの作った便利なクラスやメソッドがあるので使わない手はありません。 下記の手順で月の日数を求めます。 1. 求める月の初めの日のdatetimeを作成する 1. 求める月の次の月のdatetimeを作成する 1. 上記の差分を求める (次の月から前の月を引く) 次の月を求めるために, relativedeltaを使います。 ```bash $ pip install --upgrade python-dateutil ``` ### 月の日数を求める 下記の方法で月の日数を求めます。 ``` # coding: UTF-8 from datetime import datetime from dateutil.relativedelta import relativedelta targetMonth = datetime(2017, 5, 1) nextMonth = targetMonth + relativedelta(months=1) delta = nextMonth - targetMonth days_of_month = delta.days print(days_of_month) ``` #### 関数化しておきました ```python # coding: UTF-8 from datetime import datetime from dateutil.relativedelta import relativedelta def days_of_month(year, month): targetMonth = datetime(year, month, 1) nextMonth = targetMonth + relativedelta(months=1) delta = nextMonth - targetMonth return delta.days print(days_of_month(2017, 1)) ``` 月の日数を元にデータを作成したりする時に上記の方法が参考になれば幸いです。 仕事で機械的にデータを作成する時にも、このような方法を知っているとだいぶ捗ると思います。

0 件のコメント :

コメントを投稿