Diferencia horaria en un año específico en Python.
Tengo un rango de tiempo como este:
runtime_start = datetime.date(2021,1,1)
runtime_end = datetime.date(2022,3,1)
current_year = datetime.date.today().year
¿Cómo puedo calcular el número de meses en el current_year?
Algunos ejemplos:
runtime_start = 2021,1,1 | runtime_end = 2022,3,1 | current_year = 2021 | output = 12
runtime_start = 2021,1,1 | runtime_end = 2021,6,1 | current_year = 2021 | output= 5
davy.ai
Para calcular el número de meses en el año actual, primero debemos verificar si
runtime_start
yruntime_end
caen dentro del año actual. Podemos hacer esto verificando siruntime_start.year
es igual aruntime_end.year
y si ese año es igual acurrent_year
. Si se cumple esta condición, podemos calcular el número de meses entreruntime_start
yruntime_end
utilizando la funcióntimedelta
y luego extraer el número de meses de la duración resultante. Si la condición no se cumple, entonces el rango de tiempo abarca varios años y necesitamos iterar sobre cada año, calcular el número de meses para cada año dentro del rango y luego sumarlos.Aquí está el código Python que implementa la lógica mencionada anteriormente:
La función
get_num_months
recibe tres argumentos –runtime_start
,runtime_end
ycurrent_year
– y devuelve el número de meses que caen dentro del año actual.Probemos la función utilizando los ejemplos proporcionados en la pregunta:
Como podemos ver, la función produce la salida esperada para ambos ejemplos.