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
Tage zwischen zwei Daten berechnen
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:
Hat noch jemand eine Idee?
Danke
pywald
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)Danke
pywald
- __blackjack__
- User
- Beiträge: 14210
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@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.
“Every thinking person fears nuclear war and every technological nation plans for it. Everyone knows
it's madness, and every country has an excuse.” — Carl Sagan, Cosmos, Episode 13: Who Speaks for Earth?
it's madness, and every country has an excuse.” — Carl Sagan, Cosmos, Episode 13: Who Speaks for Earth?
Das Modul hat das ja auch nicht. Die Klasse datetime hat das. Also
Achtung: der Formatstring war zumindest fuer mein Datum falsch, da muss es ein grosser Y sein!
Code: Alles auswählen
import datetime
datum1 = "11.12.2020"
print(datetime.datetime.strptime(datum1, "%d.%m.%Y"))
- noisefloor
- User
- Beiträge: 4231
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
einfach mit date-Objekten rechnen:
Geht aber natürlich auch mit datetime:
Gruß, noisefloor
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)
>>>
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)
>>>
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:
pywald
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)