Skip to content

fix(ris): Provox-Sitzungstermine in echter Berliner Ortszeit - #75

Merged
pseidler89-sudo merged 1 commit into
mainfrom
fix/provox-zeitzone
Aug 5, 2026
Merged

fix(ris): Provox-Sitzungstermine in echter Berliner Ortszeit#75
pseidler89-sudo merged 1 commit into
mainfrom
fix/provox-zeitzone

Conversation

@pseidler89-sudo

Copy link
Copy Markdown
Owner

Räumt Punkt 2 der „Nächsten Schritte" aus docs/STATUS.md ab.

Der Fehler

provox.ts verdrahtete den UTC-Offset fest auf +01:00. Im gesamten Sommerhalbjahr — also auch heute — lag damit jeder importierte Sitzungstermin eine Stunde zu früh: Eine Sitzung um 19:30 erschien als 18:30.

Im AllRIS-Adapter war das bereits behoben; Provox blieb übrig.

Die Lösung

Die Umrechnung läuft jetzt über Intl.DateTimeFormat mit timeZone: "Europe/Berlin" statt über eine feste Zahl. Die Regeln der Zeitumstellung stehen damit dort, wo sie gepflegt werden — in der ICU-Datenbank der Laufzeit — und nicht in unserem Code. Zwei Durchläufe, damit auch die Umstellungsnächte stimmen; ohne den zweiten läge ein Termin am Umstellungstag um eine Stunde daneben.

Warum ein eigenes Modul statt Wiederverwendung

Dieselbe Rechnung steht bereits in allris.ts. Sie von dort herauszuziehen hätte bedeutet, den ALLRIS-Parser anzufassen — und der steht bis nach dem Pitch unter Fix-Freeze, weil zwei Härtungsrunden dort je eine schwerere Lücke erzeugt haben, als sie geschlossen haben.

Deshalb: neues lib/ris/zeitzone.ts, Provox nutzt es, allris.ts bleibt unberührt. Die Dopplung ist im Kopfkommentar begründet, und der ohnehin geplante ALLRIS-Rewrite schwenkt auf dieses Modul um.

Geprüft

  • 7 neue Tests: Winter- und Sommerhalbjahr, beide Umstellungstage 2026 (29.03. und 25.10., jeweils vor und nach der Umstellung), Mitternacht (hour12:false liefert dort 24 statt 0), ungültige Eingabe → null
  • Rückprobe über alle zwölf Monate: formatiert man das Ergebnis wieder in Berliner Ortszeit, kommt dieselbe Uhrzeit heraus
  • src/lib/ris vollständig: 75 Tests grün
  • npm run lint und npm run typecheck sauber

🤖 Generated with Claude Code

https://claude.ai/code/session_018YNj1kkesDywuEGvNweBHM

provox.ts verdrahtete den UTC-Offset fest auf +01:00. Im gesamten
Sommerhalbjahr — also auch jetzt — lag damit jeder importierte Sitzungstermin
eine Stunde zu frueh: eine Sitzung um 19:30 erschien als 18:30.

Die Rechnung geht jetzt ueber Intl statt ueber eine feste Zahl; die Regeln der
Zeitumstellung stehen damit in der ICU-Datenbank der Laufzeit und nicht in
unserem Code. Zwei Durchlaeufe, damit auch die Umstellungsnaechte stimmen.

Bewusst als eigenes Modul lib/ris/zeitzone.ts und NICHT aus allris.ts
herausgezogen: Der ALLRIS-Parser steht bis nach dem Pitch unter Fix-Freeze.
Die Dopplung ist dokumentiert; der geplante ALLRIS-Rewrite schwenkt um.

7 neue Tests, darunter beide Umstellungstage 2026 und eine Rueckprobe ueber
alle zwoelf Monate.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018YNj1kkesDywuEGvNweBHM
@pseidler89-sudo
pseidler89-sudo merged commit 2465748 into main Aug 5, 2026
6 checks passed
@pseidler89-sudo
pseidler89-sudo deleted the fix/provox-zeitzone branch August 6, 2026 14:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant