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
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)
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)
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