Ich habe den folgenden Code, um dies zu tun, aber wie kann ich es besser machen? Im Moment denke ich, dass es besser ist als verschachtelte Schleifen, aber es fängt an, Perl-One-Linerish zu werden, wenn Sie einen Generator in einem Listenverständnis haben.
day_count = (end_date - start_date).days + 1
for single_date in [d for d in (start_date + timedelta(n) for n in range(day_count)) if d <= end_date]:
print strftime("%Y-%m-%d", single_date.timetuple())
Anmerkungen
- Ich benutze dies nicht zum Drucken. Das ist nur für Demozwecke.
- Die Variablen
start_date
undend_date
sinddatetime.date
Objekte, da ich die Zeitstempel nicht benötige. (Sie werden verwendet, um einen Bericht zu erstellen).
Beispielausgabe
Für ein Startdatum 2009-05-30
und ein Enddatum von 2009-06-09
:
2009-05-30
2009-05-31
2009-06-01
2009-06-02
2009-06-03
2009-06-04
2009-06-05
2009-06-06
2009-06-07
2009-06-08
2009-06-09