Seite 1 von 1
Tage zwischen zwei Daten berechnen
Verfasst: Sonntag 31. Januar 2021, 09:31
von pywald
Hallo,
Ich habe eine Frage: wie berechnet man die Tage zwischen zwei Daten?
Ich habe schon im Internet gesucht doch nichts passendes gefunden.
Am besten wäre es wenn es ein kurzer Code sein würde.
Danke schon mal im voraus.
pywald
Re: Tage zwischen zwei Daten berechnen
Verfasst: Sonntag 31. Januar 2021, 10:20
von sparrow
Indem man zwei datetime.date Objekte voneinander substrahiert.
Re: Tage zwischen zwei Daten berechnen
Verfasst: Sonntag 31. Januar 2021, 11:51
von pywald
Danke! Aber bei mir zeigt er immer noch eine Fehlermeldung an:
datum1 = datetime.strptime(datum1, "%d.%m.%y").date()
AttributeError: module 'datetime' has no attribute 'strptime'
Mein Code:
Code: Alles auswählen
datum1 = datetime.strptime(datum1, "%d.%m.%y").date()
datum2 = datetime.strptime(datum2, "%d.%m.%y").date()
tage = (datum1-datum2)
Hat noch jemand eine Idee?
Danke
pywald
Re: Tage zwischen zwei Daten berechnen
Verfasst: Sonntag 31. Januar 2021, 12:04
von __blackjack__
@pywald: Es gibt das Modul `datetime` und da drin die Klasse `datetime`. Du verwendest hier das Modul anstelle der Klasse. Du musst `strptime()` auf der Klasse aufrufen.
Re: Tage zwischen zwei Daten berechnen
Verfasst: Sonntag 31. Januar 2021, 12:07
von __deets__
Das Modul hat das ja auch nicht. Die Klasse datetime hat das. Also
Code: Alles auswählen
import datetime
datum1 = "11.12.2020"
print(datetime.datetime.strptime(datum1, "%d.%m.%Y"))
Achtung: der Formatstring war zumindest fuer mein Datum falsch, da muss es ein grosser Y sein!
Re: Tage zwischen zwei Daten berechnen
Verfasst: Sonntag 31. Januar 2021, 12:09
von noisefloor
Hallo,
einfach mit date-Objekten rechnen:
Code: Alles auswählen
>>> from datetime import date
>>> d1 = date(2021, 1, 1)
>>> d2 = date.today()
>>> delta = d2-d1
>>> delta
datetime.timedelta(days=30)
>>>
Geht aber natürlich auch mit datetime:
Code: Alles auswählen
>>> from datetime import datetime
>>> d3 = datetime(2021, 1, 1)
>>> d4 = datetime.today()
>>> delta2 = d4-d3
>>> delta2
datetime.timedelta(days=30, seconds=43656, microseconds=968295)
>>>
Gruß, noisefloor
Re: Tage zwischen zwei Daten berechnen
Verfasst: Sonntag 31. Januar 2021, 12:13
von pywald
Vielen Dank für all die Antworten! Ihr habt mir sehr weitergeholfen
pywald
Re: Tage zwischen zwei Daten berechnen
Verfasst: Sonntag 31. Januar 2021, 13:26
von pywald
Eine frage hätte ich doch noch: Warum zeigt der Python Interpreter hier bei der Umwandlung eine Fehlermeldung an?
Die Fehlermeldung:
datum1 = datetime.strptime(datum, "%d-%m-%y").date()
File "C:\Program Files (x86)\Python38-32\lib\_strptime.py", line 568, in _strptime_datetime
tt, fraction, gmtoff_fraction = _strptime(data_string, format)
File "C:\Program Files (x86)\Python38-32\lib\_strptime.py", line 352, in _strptime
raise ValueError("unconverted data remains: %s" %
ValueError: unconverted data remains: 21
Mein Code:
Code: Alles auswählen
datum1 = datetime.strptime(datum, "%d-%m-%y").date()
datum2 = datetime.strptime(day, "%d-%m-%y").date()
tage = (datum1-datum2)
pywald
Re: Tage zwischen zwei Daten berechnen
Verfasst: Sonntag 31. Januar 2021, 13:33
von __deets__
Das habe ich dir schon beantwortet. Nochmal genau lesen.
Re: Tage zwischen zwei Daten berechnen
Verfasst: Sonntag 31. Januar 2021, 13:36
von pywald
Entschuldigung. Habe ich übersehen.