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.