From ce7fa2bba03554aa29b84c3e3c68e5bfb67670f2 Mon Sep 17 00:00:00 2001 From: idriz Date: Sun, 13 Sep 2026 08:27:04 +0200 Subject: [PATCH] =?UTF-8?q?Raspored:=20naziv=20dana=20=3D=20sljede=C4=87e?= =?UTF-8?q?=20nailaze=C4=87e=20pojavljivanje=20(zbog=20smjena)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bare naziv dana (npr. "utorak") sada znači danas ako je taj dan, inače ovu sedmicu ako još nije prošao, a sljedeću sedmicu ako je prošao — bitno jer smjena zavisi od sedmice. "sljedeći/naredni/idući " gura u narednu kalendarsku sedmicu. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW --- idriz/apps/raspored/manifest.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/idriz/apps/raspored/manifest.py b/idriz/apps/raspored/manifest.py index 9851311..0b3152f 100644 --- a/idriz/apps/raspored/manifest.py +++ b/idriz/apps/raspored/manifest.py @@ -79,10 +79,20 @@ def _parse_kada(s: str) -> tuple[dt.date, str]: except ValueError: pass wd = {"ponedjeljak": 0, "utorak": 1, "srijeda": 2, "cetvrtak": 3, "petak": 4, "subota": 5, "nedjelja": 6, "nedelja": 6} - if sn in wd: - monday = today - dt.timedelta(days=today.weekday()) - d = monday + dt.timedelta(days=wd[sn]) - return d, _date_fraza(d) + # naziv dana -> sljedeće NAILAZEĆE pojavljivanje (danas ako je taj dan; inače + # ova sedmica ako još nije prošao, a sljedeća ako jeste — bitno zbog smjena). + # "sljedeći/naredni/idući " uvijek gura u narednu sedmicu. + qual = any(k in sn for k in ("sljedec", "naredn", "iduc")) + for wname, wi in wd.items(): + if sn.endswith(wname): + if qual: + # dan u narednoj kalendarskoj sedmici + next_monday = today - dt.timedelta(days=today.weekday()) + dt.timedelta(days=7) + d = next_monday + dt.timedelta(days=wi) + else: + # sljedeće nailazeće pojavljivanje (danas ako je taj dan) + d = today + dt.timedelta(days=(wi - today.weekday()) % 7) + return d, _date_fraza(d) return today, "danas"