from datetime import date, datetime, timedelta
#Fonction de générateur qui renvoie l'itérateur de l'objet date
#date de début: begin
#Date de fin: end
def date_iterator_generator(begin, end):
#Trouvez le nombre de jours à partir du chronomètre de la date de fin et de la date de début
#Pour inclure la date de fin+1
length = (end - begin).days + 1
#Séquence numérique de 0 à jours
for n in range(length):
yield begin + timedelta(n)
#Date de début / date de fin
begin = datetime.strptime('20200331', '%Y%m%d').date()
end = date.today() #La date d'aujourd'hui
#Générer un générateur
gen = date_iterator_generator(begin, end)
print('gen: ' + str(gen))
#Date de sortie
for target in gen:
print(target.strftime('%Y%m%d'))
Résultat de l'exécution sur Python 3.8.2.
gen: <generator object date_iterator_generator at 0x104e0f900>
20200331
20200401
20200402
20200403
20200404
20200405
HOWTO de programmation fonctionnelle - Documentation Python 3 \ .8 \ .2
Les générateurs sont des fonctions spéciales qui facilitent l'écriture des itérateurs. Une fonction standard calcule et renvoie une valeur, mais le générateur renvoie un itérateur qui renvoie un ensemble de valeurs.
Intégré - Documentation Python 3 \ .8 \ .2
Le type range représente une séquence immuable de nombres et est couramment utilisé pour un certain nombre de boucles dans une boucle for.
datetime \ - \ - \ - Type de date et d'heure de base - documentation Python 3 \ .8 \ .2
L'objet timedelta représente le temps écoulé, c'est-à-dire la différence entre deux dates ou heures.
Recommended Posts