Python Timedelta Months を使用して日付を計算する

Haider Ali 2023年6月21日
  1. Python datetime 関数
  2. relativedelta() を使用して Python を使用して日付を計算する
Python Timedelta Months を使用して日付を計算する

このガイドでは、Python で timedelta を使用して datetime を使用する方法を学習します。 現在の日付またはその他の日付から 6 か月後の日付を計算する方法を見ていきます。

飛び込みましょう!

Python datetime 関数

まず、datetime 関数の仕組みと、機能を制限する欠点を見ていきます。 最初に知っておくべきことは、コードに datetime をインポートすることです。

import datetime

その後、datetime のインスタンスを作成します。 インスタンスを作成したら、その算術関数を使用できます。

日と月を差し引くことができます。 次のコードを見てください。

# instance of datetime
date = datetime.datetime(2022, 2, 1)
# subtracting 1 from the month
date = date.replace(month=date.month - 1)
print(date)

出力:

2022-01-01 00:00:00

上記のコードでわかるように、算術関数を使用して、以前に設定した日付から 1 か月を減算しています。 しかし、ここで落とし穴があります。上記の結果から 1 か月を差し引こうとするとどうなるでしょうか。

コードはエラーになります。 見てください。

date = date.replace(month=date.month - 1)

出力:

    date = date.replace(month=date.month-1)
ValueError: month must be in 1..12

datetime 関数では、サポートされていないため、算術関数を使用して年全体を減算することはできません。 同様に、現在の日付が 12 月の最後の日にあるときに 1 または 2 を追加すると、同じエラーが発生します。

# if you add 1 in date, it will throw an error because it doesn't support it
date = datetime.datetime(2022, 12, 1)
date_ = date.replace(month=date_1.month + 1)

出力:

    date = date.replace(month=date.month+1)
ValueError: month must be in 1..12

では、質問に戻りますが、現在の日付またはその他の日付から 6 か月後の日付を計算するにはどうすればよいでしょうか。 答えは、relativedelta を使用することにあります。

relativedelta() を使用して Python を使用して日付を計算する

Python コードで relativedelta を使用する前に、dateutil をインストールして relativedelta をインポートする必要があります。 コマンド プロンプトで次のコマンドを実行して、dateutil をインストールします。

pip install python-dateutil

インストールしたら、そこから relativedelta をインポートする必要があります。

from dateutil import relativedelta

その後、現在の問題を解決するために datetimerelativedelta の両方を使用する必要があります。 次のコードを見てください。

date = datetime.datetime(2022, 1, 1)
# created the instance of the datetime and set the current date as 2022,1,1

次に、relativedelta のインスタンスを作成し、月の値を 1 に設定します。

r_date = relativedelta.relativedelta(months=1)

あとは、datetime のインスタンスから relativedelta のインスタンスを差し引くだけです。 それは私たちの望む答えを与えてくれます。

# if you subtract the relativedelta variable with the date instance, it will work correctly and change the year too.
new_date = date - r_date
print(new_date)

出力:

2021-12-01 00:00:00

同様に、日付に 1 を追加すると、目的の出力が得られます。

これで、この手法を使用して、現在の日付から任意の日付を計算できます。 これは、現在の日付から 6 か月後の日付を計算する方法の答えです。

著者: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn

関連記事 - Python Date