Seite 1 von 1
Datumsangaben zwischen zwei Daten
Verfasst: Montag 7. März 2016, 15:47
von DMD-OL
gibs eine möglichkeit, sich mit zwei verschiedenen datumsangaben
z. B. datum1 = '29.03.2016' und datum2 = '02.04.2016' alle
datumangabe, die zwischen diesen beiden liegen, ausgeben zu lassen?
(ziel: '[29.03.2016', '30.03.2016','31.03.2016','01.04.2016','02.04.2016'])
Re: Datumsangaben zwischen zwei Daten
Verfasst: Montag 7. März 2016, 16:33
von pixewakb
Das geht mit dem datetime-Modul und zwar wandelst Du die Strings in datetime.date-Objekte um und dann gehst Du vom ersten Datum mittels + datetime.timedelta(1) solange einen Tag hoch, bis Du beim 2. Datum angelangt bist. (Muss ich regelmäßig machen...)
Code: Alles auswählen
>>> import datetime
>>> datum = datetime.date(2016, 3, 7)
>>> datum2 = datetime.date(2016, 3, 14)
>>> while datum <= datum2:
print(datum)
datum += datetime.timedelta(1)
2016-03-07
2016-03-08
2016-03-09
2016-03-10
2016-03-11
2016-03-12
2016-03-13
2016-03-14
Und ergänzend - was wahrscheinlich eleganter geht, nur auf die Schnelle zur Illustration:
Code: Alles auswählen
>>> datumsstring = "02.04.2016"
>>> tag, monat, jahr = datumsstring.split(".")
>>> datetime.date(int(jahr), int(monat), int(tag))
datetime.date(2016, 4, 2)
Und - ach ja - was ich sehr, sehr schön finde:
Re: Datumsangaben zwischen zwei Daten
Verfasst: Montag 7. März 2016, 16:57
von pillmuncher
@pixewakbWarum nicht einfach so?
Code: Alles auswählen
In [1]: import datetime
In [2]: datumsstring = "02.04.2016"
In [3]: datetime.datetime.strptime(datumsstring, "%d.%m.%Y").date()
Out[3]: datetime.date(2016, 4, 2)
Und:
Code: Alles auswählen
In [4]: d = datetime.datetime.strptime(datumsstring, "%d.%m.%Y").date()
In [5]: d.strftime("%d.%m.%Y")
Out[5]: '02.04.2016'
Re: Datumsangaben zwischen zwei Daten
Verfasst: Montag 7. März 2016, 17:02
von pixewakb
Danke für den Tipp, ich habe mir das mal notiert. War mir nicht geläufig. Ich programmiere häufig so, wie ich denke und das ist häufig nicht sehr elegant.

Re: Datumsangaben zwischen zwei Daten
Verfasst: Montag 7. März 2016, 17:48
von DMD-OL
JAAAA

... und ich schraub mir seit 5 Stunden selbst was zusammen, dabei is das n 2 zeiler

:)