¿Cómo iterar durante meses entre dos fechas en Python?

En este artículo, discutiremos cómo iterar durante meses entre dos fechas usando Python. 

Podemos iterar durante meses entre dos fechas utilizando los métodos timedelta y rrule .

Método 1: Iteración usando timedelta

timedelta() se usa para calcular diferencias en fechas y también se puede usar para manipulaciones de fechas en Python

Ejemplo:

Pero usando timedelta no podemos iterar perfectamente entre fechas porque aquí estamos agregando 31 días para cada mes. Pero cada mes no tendrá 31 días exactos. Algunos meses tienen 30 e incluso 28, 29. Para resolver el problema entra en juego una regla que ayuda a iterar entre fechas por un período de tiempo específico.

Código

Python3

# import necessary packages
from datetime import datetime, timedelta
 
# date initialisation
startDate = datetime(2020, 1, 10)
endDate = datetime(2020, 4, 20)
 
# stores 31 days that can be added
addDays = timedelta(days=31)
 
while startDate <= endDate:
    print(startDate)
    # add a month
    startDate += addDays
Producción

2020-01-10 00:00:00
2020-02-10 00:00:00
2020-03-12 00:00:00
2020-04-12 00:00:00

Método 2: regla

rrule es un paquete presente en la biblioteca dateutil y este paquete consta de un método también rrule que toma dtstart, till y un período de tiempo específico como parámetros que son la fecha de inicio, la fecha de finalización y el período de tiempo según la iteración, respectivamente. Los períodos de tiempo específicos son SEMANAL, MENSUAL, ANUAL, etc.

Nota: Utilice MENSUALES cuando desee iterar durante meses entre fechas.

Sintaxis:

rrule(rrule.MONTHLY, dtstart=start_date, until=end_date)

Ejemplo:

Iterar durante meses entre fechas usando rrule .

Python3

# import necessary packages
from datetime import datetime
from dateutil import rrule
 
# dates
start_date = datetime(2021, 1, 1)
end_date = datetime(2022, 1, 1)
 
for dt in rrule.rrule(rrule.MONTHLY, dtstart=start_date, until=end_date):
    print(dt)
Producción

2021-01-01 00:00:00
2021-02-01 00:00:00
2021-03-01 00:00:00
2021-04-01 00:00:00
2021-05-01 00:00:00
2021-06-01 00:00:00
2021-07-01 00:00:00
2021-08-01 00:00:00
2021-09-01 00:00:00
2021-10-01 00:00:00
2021-11-01 00:00:00
2021-12-01 00:00:00
2022-01-01 00:00:00

Ejemplo:

Iterar durante años entre fechas usando rrule.

Python3

# import necessary packages
from datetime import datetime
from dateutil import rrule
 
# dates
start_date = datetime(2021, 1, 1)
end_date = datetime(2022, 1, 1)
 
for dt in rrule.rrule(rrule.YEARLY, dtstart=start_date, until=end_date):
    print(dt)
Producción

2021-01-01 00:00:00
2022-01-01 00:00:00

Publicación traducida automáticamente

Artículo escrito por akhilvasabhaktula03 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *