From 99901f5e47b3fde8cf24f8edf30caef4a08c2607 Mon Sep 17 00:00:00 2001 From: Pustoy Date: Mon, 16 Feb 2026 13:48:48 +0500 Subject: [PATCH] =?UTF-8?q?#=20=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA=D0=B0=20get=5Fnext=5Fda?= =?UTF-8?q?tetime=20#=20pytz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scheduler.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/scheduler.py b/scheduler.py index 104a46a..4659bf5 100644 --- a/scheduler.py +++ b/scheduler.py @@ -53,22 +53,20 @@ SCHEDULED_EVENTS = [ ] -def get_next_datetime(now: datetime.datetime, target_day: int, hour: int, minute: int) -> datetime.datetime: - """ - Возвращает ближайшую дату/время (timezone-aware, MSK) для target_day/hour/minute, - начиная от 'now'. - """ +def get_next_datetime(now, target_day, hour, minute): days_ahead = (target_day - now.weekday()) % 7 target_date = (now + datetime.timedelta(days=days_ahead)).date() - return datetime.datetime( + + naive = datetime.datetime( target_date.year, target_date.month, target_date.day, hour, - minute, - tzinfo=MOSCOW_TZ + minute ) + return MOSCOW_TZ.localize(naive) + # Этот объект будет заполнен из main.py event_loop_context = {}