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:

Code: Alles auswählen

>>> str(datetime.date(2016, 4, 2))
'2016-04-02'

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. :oops:

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 :( :):)