Python: 来月・先月(nカ月後・nカ月前)の日付を取得
Pythonで来月・先月(nカ月後・nカ月前) といった日付を取得したい場合は、dateutilモジュールの relativedeltaを使用します。 英単語の「delta」には「差、差分」といった意味があります。
dateutilは外部モジュールなので、もしインストールされていない場合は インストールしてください。 (Anacondaのデフォルト環境ではインストールされています)
# pipの場合 pip install python-dateutil # condaの場合 conda install python-dateutil
dateutil - powerful extensions to datetime — dateuti documentation
relativedeltaの使い方
例えば来月であればrelativedelta()の引数に「month=1」を指定し、 先月であれば「month=-1」を指定します。基準となる日に加算して 「基準日 + relativedelta(month=1)」と記述すると翌月の日付が取得できます。
次のサンプルコードでは、 当日の日付を基準として、 翌月・先月・13か月後・13カ月前の日付を取得・表示しています。
import datetime from dateutil.relativedelta import relativedelta # 当日(基準日) t = datetime.date.today() print(t) # 2021-09-01 # 翌月 t1 = t + relativedelta(months=1) print(t1) # 2021-10-01 # 先月 t2 = t + relativedelta(months=-1) print(t2) # 2021-08-01 # 13カ月後 t3 = t + relativedelta(months=13) print(t3) # 2022-10-01 # 13か月前 t4 = t + relativedelta(months=-13) print(t4) # 2020-08-01
relativedeltaの引数
dateutil.relativedelta()で指定できる引数は月以外にも年、日、時間など多数あります。 引数の一覧は下表のとおりです。
引数 | 内容 |
---|---|
years | 年 |
months | 月 |
days | 日 |
weeks | 週 |
hours | 時間 |
minutes | 分 |
seconds | 秒 |
microseconds | マイクロ秒 |