Berechnen Sie das Datum mit Python Timedelta Months

Haider Ali 21 Juni 2023
  1. Python-Funktion datetime
  2. Verwenden Sie relativedelta(), um das Datum mit Python zu berechnen
Berechnen Sie das Datum mit Python Timedelta Months

In dieser Anleitung lernen wir die Verwendung von datetime in Python mit dem timedelta. Wir werden sehen, wie wir das Datum sechs Monate nach dem aktuellen Datum oder einem anderen Datum berechnen können.

Tauchen wir ein!

Python-Funktion datetime

Nun, zuerst schauen wir uns an, wie die Funktion datetime funktioniert und was der Nachteil ist, der die Funktionalitäten für uns einschränkt. Das erste, was Sie wissen müssen, ist, die datetime in Ihren Code zu importieren.

import datetime

Danach erstellen Sie die Instanz von datetime. Nachdem Sie die Instanz erstellt haben, können Sie ihre arithmetischen Funktionen verwenden.

Sie können einen Tag und einen Monat abziehen. Sehen Sie sich den folgenden Code an.

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

Ausgang:

2022-01-01 00:00:00

Wie Sie im obigen Code sehen können, haben wir mit Hilfe einer arithmetischen Funktion einen Monat von dem zuvor festgelegten Datum abgezogen. Aber hier ist ein Haken, was ist, wenn wir versuchen, einen Monat vom obigen Ergebnis abzuziehen?

Der Code gibt uns einen Fehler. Schau mal.

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

Ausgang:

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

Die Funktion datetime erlaubt es uns nicht, arithmetische Funktionen zu verwenden und ein ganzes Jahr abzuziehen, weil sie dies nicht unterstützt. Wenn wir 1 oder 2 hinzufügen würden, während das aktuelle Datum in den letzten Dezembertagen liegt, würde es den gleichen Fehler geben.

# 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)

Ausgang:

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

Um auf die Frage zurückzukommen, wie können wir das Datum sechs Monate nach dem aktuellen Datum oder einem anderen Datum berechnen? Die Antwort liegt in der Verwendung von relativedelta.

Verwenden Sie relativedelta(), um das Datum mit Python zu berechnen

Bevor wir fortfahren und relativedelta in unserem Python-Code verwenden, müssen wir dateutil installieren, um das relativedelta daraus zu importieren. Führen Sie Folgendes in Ihrer Eingabeaufforderung aus, um das dateutil zu installieren.

pip install python-dateutil

Nach der Installation müssen Sie das relativedelta daraus importieren.

from dateutil import relativedelta

Danach müssen wir sowohl datetime als auch relativedelta verwenden, um das aktuelle Problem zu lösen. Sehen Sie sich den folgenden Code an.

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

Jetzt erstellen wir die Instanz von relativedelta und setzen den Wert des Monats auf 1.

r_date = relativedelta.relativedelta(months=1)

Jetzt müssen wir nur noch die Instanz von relativedelta von der Instanz von datetime subtrahieren. Es wird uns unsere gewünschte Antwort geben.

# 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)

Ausgang:

2021-12-01 00:00:00

Ähnlich, wenn wir 1 zum Datum hinzufügen würden, würden wir die gewünschte Ausgabe erhalten.

Jetzt können wir diese Technik verwenden, um ein beliebiges Datum aus dem aktuellen Datum zu berechnen. Das beantwortet, wie wir das Datum von sechs Monaten ab dem aktuellen Datum berechnen können.

Autor: 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

Verwandter Artikel - Python Date