python 日時の加算と減算を行う

python 日時の加算と減算を行う

pythonで、timedeltaを使用して、日時の加算と減算を行うサンプルコードを記述してます。

環境

  • OS windows10 pro 64bit
  • python 3.8.5

日時の加算と減算

timedeltaを使用すると「週・日・時・分・秒」単位で時間の加算と減算を行うことが可能です。

import datetime

dt = datetime.datetime.now()

print(dt)
# 2020-11-05 19:12:08.683374

# 1週間 プラス
print(dt + datetime.timedelta(weeks=1))
# 2020-11-12 19:12:08.683374

# 5日 マイナス
print(dt - datetime.timedelta(days=5))
# 2020-10-31 19:12:08.683374

# 3時間 プラス
print(dt + datetime.timedelta(hours=3))
# 2020-11-05 22:12:08.683374

# 10分 マイナス
print(dt - datetime.timedelta(minutes=10))
# 2020-11-05 19:02:08.683374

# 30秒 プラス
print(dt + datetime.timedelta(seconds=30))
# 2020-11-05 19:12:38.683374

# 日付 時間 分をそれぞれプラス
print(dt + datetime.timedelta(days=1, hours=1, minutes=1))
# 2020-11-06 20:13:08.683374

引数に指定できるのは、以下となります。

timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])

年をまたいでも、ちゃんと計算されます。

import datetime

dt = datetime.datetime(2020, 12, 28, 10, 10, 10, 116000)

print(dt)
# 2020-12-28 10:10:10.116000

# 1週間 プラス
print(dt + datetime.timedelta(weeks=1))
# 2021-01-04 10:10:10.116000