PYTHON MEBY

Pythonで日付・時刻の加算・減算(timedelta)

この記事では、Pythonのdatetimeモジュールとtimedeltaオブジェクトを使用して日付と時刻の加算と減算を行う方法を説明します。timedeltaオブジェクトを使用して、日、時間、分、秒などの単位で日付と時刻を簡単に操作できます。

目次

timedeltaオブジェクトの作成

timedeltaオブジェクトは、日数、秒数、マイクロ秒数などを指定して作成できます。

from datetime import timedelta

# 日数を指定してtimedeltaオブジェクトを作成
days = timedelta(days=10)
print(days)

# 秒数を指定してtimedeltaオブジェクトを作成
seconds = timedelta(seconds=3600) # 1時間
print(seconds)

# 日数、秒数、マイクロ秒数を指定してtimedeltaオブジェクトを作成
days_seconds_microseconds = timedelta(days=1, seconds=10, microseconds=1000)
print(days_seconds_microseconds)

上記のように、timedeltaオブジェクトは様々な単位を組み合わせて作成できます。

日付への加算

datetimeオブジェクトとtimedeltaオブジェクトを使用して日付に加算を行うことができます。

from datetime import datetime, timedelta

date = datetime(2024, 1, 1)
new_date = date + timedelta(days=10)
print(new_date)

timedeltaオブジェクトをdatetimeオブジェクトに加算することで、日付を加算できます。

日付からの減算

datetimeオブジェクトからtimedeltaオブジェクトを減算することで、日付を減算できます。

from datetime import datetime, timedelta

date = datetime(2024, 1, 1)
new_date = date - timedelta(days=10)
print(new_date)

timedeltaオブジェクトをdatetimeオブジェクトから減算することで、日付を減算できます。

時刻への加算

datetimeオブジェクトとtimedeltaオブジェクトを使用して時刻に加算を行うことができます。

from datetime import datetime, timedelta

time = datetime(2024, 1, 1, 10, 0, 0)
new_time = time + timedelta(hours=2)
print(new_time)

timedeltaオブジェクトをdatetimeオブジェクトに加算することで、時刻を加算できます。

時刻からの減算

datetimeオブジェクトからtimedeltaオブジェクトを減算することで、時刻を減算できます。

from datetime import datetime, timedelta

time = datetime(2024, 1, 1, 10, 0, 0)
new_time = time - timedelta(hours=2)
print(new_time)

timedeltaオブジェクトをdatetimeオブジェクトから減算することで、時刻を減算できます。

いくつかの具体的な例を見てみましょう。

from datetime import datetime, timedelta

# 今日の1週間後
today = datetime.now()
next_week = today + timedelta(weeks=1)
print(f"Today: {today}")
print(f"Next week: {next_week}")

# 1ヶ月前
last_month = today - timedelta(days=30)
print(f"Last month: {last_month}")

# 2時間後
in_two_hours = today + timedelta(hours=2)
print(f"In two hours: {in_two_hours}")

このように、timedeltaオブジェクトを使うことで、日付と時刻の加算・減算が容易になります。

関連記事