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: 13111
- 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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
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: 3856
- 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)