J'ai le code suivant pour le faire, mais comment puis-je le faire mieux? À l'heure actuelle, je pense que c'est mieux que les boucles imbriquées, mais cela commence à devenir Perl-one-linerish lorsque vous avez un générateur dans une liste de compréhension.
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())
Remarques
- Je ne l'utilise pas réellement pour imprimer. C'est juste à des fins de démonstration.
- Les variables
start_date
etend_date
sont desdatetime.date
objets car je n'ai pas besoin des horodatages. (Ils vont être utilisés pour générer un rapport).
Exemple de sortie
Pour une date de début 2009-05-30
et une date de fin de 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