From db4441c4d570704c9b5d7b1c397644f649180e4c Mon Sep 17 00:00:00 2001 From: JJ Date: Mon, 10 Mar 2025 07:24:29 +0100 Subject: [PATCH] Calculando el proximo lunes --- python-utilities | 2 +- telegram-bot-guardias.py | 20 ++++++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/python-utilities b/python-utilities index 0ed336b..346053e 160000 --- a/python-utilities +++ b/python-utilities @@ -1 +1 @@ -Subproject commit 0ed336b9194b7bace8cd287c0f01bf9749bd3371 +Subproject commit 346053e0f3e905864d36f0b64835358db92c5bde diff --git a/telegram-bot-guardias.py b/telegram-bot-guardias.py index 56dcaea..1ea9394 100644 --- a/telegram-bot-guardias.py +++ b/telegram-bot-guardias.py @@ -102,6 +102,22 @@ async def manejar_respuesta(update: Update, context: CallbackContext): else: await context.bot.send_message(chat_id=usuario, text="No entiendo tu respuesta. Responde con un 1 o un Si, si estás de guardia. Con un 0 o un No en caso contrario. Gracias") +def next_monday(): + # Obtener la fecha actual + hoy = datetime.now() + + # Calcular cuántos días faltan para el próximo lunes + # weekday() devuelve 0 para lunes, 1 para martes, ..., 6 para domingo + dias_para_lunes = (0 - hoy.weekday()) % 7 + + # Si hoy es lunes, dias_para_lunes será 0, por lo que devolvemos hoy + # Si no, sumamos los días que faltan para el próximo lunes + if dias_para_lunes == 0: + return hoy + else: + return hoy + timedelta(days=dias_para_lunes) + + # Función principal para iniciar el bot def main(): # El token del bot @@ -111,9 +127,9 @@ def main(): application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, manejar_respuesta)) # Programar el mensaje de guardia - ahora = datetime.datetime.now(TIMEZONE) + #ahora = datetime.datetime.now(TIMEZONE) - proximo_lunes = ahora #+ datetime.timedelta(days=(0 - ahora.weekday())) + proximo_lunes = next_monday() #ahora #+ datetime.timedelta(days=(0 - ahora.weekday())) proximo_lunes = proximo_lunes.replace(hour=8, minute=25, second=0, microsecond=0) logger.info(f"La fecha actual es {ahora} y el mensaje se enviará {proximo_lunes}")