esto es lo que hago recién arrancando el año.
def es_bisiesto(anio):
"""
Determina si un año es bisiesto.
Un año es bisiesto si cumple las siguientes condiciones:
- Es divisible por 4.
- No es divisible por 100, a menos que también sea divisible por 400.
Parámetros:
anio (int): El año que se quiere verificar.
Retorna:
bool: True si el año es bisiesto, False en caso contrario.
"""
return (anio % 4 == 0) and (anio % 100 != 0 or anio % 400 == 0)
def dia_inicial_anio(anio):
"""
Calcula el día de la semana para el 1 de enero de un año dado.
Utiliza la fórmula de Zeller para calcular el día de la semana,
donde 0 = sábado, 1 = domingo, 2 = lunes, etc.
Parámetros:
anio (int): El año para el cual se quiere calcular el día inicial.
Retorna:
int: Un número del 0 al 6 que representa el día de la semana del 1 de enero.
"""
a = (14 - 1) // 12
y = anio - a
m = 1 + (12 * a) - 2
d = (1 + y + y//4 - y//100 + y//400 + (31*m)//12) % 7
return d
def informacion_anio(anio):
"""
Proporciona información sobre si un año comienza en lunes y si es bisiesto.
Parámetros:
anio (int): El año que se quiere evaluar.
Retorna:
Tuple[bool, bool]: El primer valor es True si el año comienza en lunes,
el segundo valor es True si el año es bisiesto.
"""
dia_inicio = dia_inicial_anio(anio)
bisiesto = es_bisiesto(anio)
comienza_lunes = dia_inicio == 1
return comienza_lunes, bisiesto
Solicitar al usuario que ingrese un año
anio_usuario = int(input("Por favor, ingrese un año: "))
Obtener la información del año
comienza_lunes, es_bisiesto = informacion_anio(anio_usuario)
Mostrar los resultados
print(f"El año {anio_usuario} {'comienza' if comienza_lunes else 'no comienza'} en lunes.")
print(f"El año {anio_usuario} {'es' if es_bisiesto else 'no es'} bisiesto.")