メインコンテンツへスキップ
【Python】n年後の日付を求める

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

·2 分
Programming Python
かずさプログラマー
著者
かずさプログラマー
業務の作業自動化を行っています。Go、VBA、Pythonを主に使用しています。過去にはC#、VB.Net、JavaScriptも使用していました。
目次

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

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

dateutil/dateutil

Useful extensions to the standard Python datetime features

Python
2380
489

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

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

pip install python-dateutil

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

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

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

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年前
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リポジトリを参考にしました。
便利なモジュールがまとめられているので、参考にしてみてください。

vinta/awesome-python

An opinionated list of awesome Python frameworks, libraries, software and resources.

Python
227003
24965

関連記事

【Python】Pythonではじめる機械学習のgraphvizでエラーが出るときの対処方法
·3 分
Programming Python
【Python】クリップボードを利用する
··3 分
Programming Python
【Python】休日または祝日を判定する
··4 分
Programming Python