Pythonでn年後の日付を求めてみます。
datetimeモジュールのtimedeltaでもn年後の日付を求められますが
うるう年の処理に手間がかかります。
python-dateutilモジュールを使用して、n年後の日付を求めてみます。
python-dateutilをインストールする
pipを使用してpython-dateutilをインストールするには
コマンドプロンプトに下記のように入力してください。
1 |
pip install python-dateutil |
Condaを利用してインストールする場合は下記のように入力してください。
1 |
conda install python-dateutil |
dateutil.relativedeltaでn年後の日付を求める
n年後の日付を求めるにはrelativedeltaクラスを使用します。
datetime.dateまたはdatetime.datetimeにrelativedeltaを加算することにより
n年後の日付を求めることができます。
1 2 3 4 5 6 7 8 9 10 11 |
from datetime import date from dateutil.relativedelta import relativedelta today = date(year=2016, month=1, day=1) print(today) # 2016-01-01 # 1年後 print(today + relativedelta(years=1)) # 2017-01-01 # 2年後 print(today + relativedelta(years=2)) # 2018-01-01 |
n年前の日付を求めるにはdateまたはdatetimeからrelativedeltaを引きます。
1 2 3 4 5 |
# 1年前 print(today - relativedelta(years=1)) # 2015-01-01 # 2年前 print(today - relativedelta(years=2)) # 2014-01-01 |
relativedeltaではn年後・nカ月後の計算ができるので非常に便利です。
timedeltaだと、n年後、nカ月後の計算が大変なので
ぜひ、python-dateutilモジュールを使用してみてください。
参考
n年後の計算にはpython-dateutilドキュメントを参考にしました。
日付関連のモジュールの検索にgithubのawesome-pythonリポジトリを参考にしました。
便利なモジュールがまとめられているので、参考にしてみてください。
GitHub - vinta/awesome-python: A curated list of awesome Python frameworks, libraries, software and resources
A curated list of awesome Python frameworks, libraries, software and resources - GitHub - vinta/awesome-python: A curated list of awesome Python frameworks, lib...
コメント