【Python】n年後の日付を求める

Pythonでn年後の日付を求めてみます。

datetimeモジュールのtimedeltaでもn年後の日付を求められますがうるう年の処理に手間がかかります。

python-dateutilモジュールを使用して、n年後の日付を求めてみます。

python-dateutilをインストールする

pipを使用してpython-dateutilをインストールするには コマンドプロンプトに下記のように入力してください。

1pip install python-dateutil

dateutil.relativedeltaでn年後の日付を求める

n年後の日付を求めるにはrelativedeltaクラスを使用します。

datetime.dateまたはdatetime.datetimeにrelativedeltaを加算することによりn年後の日付を求めることができます。

 1from datetime import date
 2from dateutil.relativedelta import relativedelta
 3
 4today = date(year=2016, month=1, day=1)
 5print(today) # 2016-01-01
 6
 7# 1年後
 8print(today + relativedelta(years=1)) # 2017-01-01
 9
10# 2年後
11print(today + relativedelta(years=2)) # 2018-01-01

n年前の日付を求めるにはdateまたはdatetimeからrelativedeltaを引きます。

1# 1年前
2print(today - relativedelta(years=1)) # 2015-01-01
3
4# 2年前
5print(today - relativedelta(years=2)) # 2014-01-01

relativedeltaではn年後・nカ月後の計算ができるので非常に便利です。

timedeltaだと、n年後、nカ月後の計算が大変なので、ぜひpython-dateutilモジュールを使用してみてください。

参考

n年後の計算にはpython-dateutilドキュメントを参考にしました。
https://dateutil.readthedocs.io/en/stable/

日付関連のモジュールの検索にgithubのawesome-pythonリポジトリを参考にしました。
便利なモジュールがまとめられているので、参考にしてみてください。
https://github.com/vinta/awesome-python

関連ページ