Raspored: naziv dana = sljedeće nailazeće pojavljivanje (zbog smjena)
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 <dan>" gura u narednu kalendarsku sedmicu. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
This commit is contained in:
@@ -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 <dan>" 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"
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user