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'])
Datumsangaben zwischen zwei Daten
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...)
Und ergänzend - was wahrscheinlich eleganter geht, nur auf die Schnelle zur Illustration:
Und - ach ja - was ich sehr, sehr schön finde:
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
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)
Code: Alles auswählen
>>> str(datetime.date(2016, 4, 2))
'2016-04-02'
- pillmuncher
- User
- Beiträge: 1484
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
@pixewakbWarum nicht einfach so?
Und:
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)
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'
In specifications, Murphy's Law supersedes Ohm's.
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.