Mam następujący kod, aby to zrobić, ale jak mogę to zrobić lepiej? W tej chwili myślę, że to lepsze niż zagnieżdżone pętle, ale zaczyna mieć Perl-one-linerish, gdy masz generator w zrozumieniu listy.
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())
Notatki
- Nie używam tego do drukowania. To tylko do celów demonstracyjnych.
start_date
Iend_date
zmiennedatetime.date
obiektów, ponieważ nie muszę timestampów. (Zostaną wykorzystane do wygenerowania raportu).
Przykładowe dane wyjściowe
Dla daty początkowej 2009-05-30
i końcowej 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