Zeitangaben mit fee:conditional

Ein Parkplatz ist gebührenpflichtig von Anfang Mai bis Ende September in der Zeit von 9 bis 20 Uhr. Man kann sich aber auch ein Kurzzeitticket holen, dann kann man 15 min kostenlos parken.
Wie mache ich das mit fee und fee:conditional?

Ich hätte da mal mit fee=yes gearbeitet und dann
fee:conditional=no @ Oct-Apr; no @ stay <15 minutes; no @ 20:00-09:00

Ist das so korrekt?

Grundsätzlich würde ich sagen ja, aber es könnte sein, dass man als Trenner für die Werte ein Komma statt dem Semikolon braucht, da sonst die eine Regel die andere überschreibt (ist das bei conditional so wie bei opening_hours geregelt?)

Semikolons sind richtig, weil es getrennte Werte des “fee” Keys sind. Innerhalb von rein zeitlichen Bedingungen gilt natürlich die Komma-Regel von opening_hours.
Es widersprechen sich auch keine der drei Statements (wie es sein sollte), deswegen ist es sauber auszuwerten.

Allerdings sollte man die Bedingungen noch in Klammern packen, damit es keine Verwechselungen bei den Semikolons gibt, die ja u.U. auch in den Bedingungen auftauchen könnten:

fee:conditional=no @ (Oct-Apr); no @ (stay <15 minutes); no @ (20:00-09:00)

4 Likes

@mueschel du bist echt Experte für sowas :wink:

könnte man das auch so schreiben?
fee:conditional=no @ ((Oct-Apr); (stay <15 minutes); (20:00-09:00))

oder anders gefragt, heißt das, dass man nur zwischen 20 und 9 h von Oktober bis April für höchstens 15 Minuten ohne fee parken darf?
fee:conditional=no @ ((Oct-Apr), (stay <15 minutes), (20:00-09:00))

Diese Syntax ist soweit ich weiß nicht definiert. Mehrere Statements in Bedingungen müssen mit logischen Operatoren verknüpft werden. Damit wäre theoretisch möglich
fee:conditional=no @ (Oct-Apr OR stay < 15 minutes OR 20:00-09:00)

EDIT: Ich sehe gerade, dass im Wiki nur “AND” erwähnt ist, aber kein “OR”. “OR” wäre damit zwar folgerichtig, aber nicht zwingend definiert.

Das wäre
fee:conditional = no @ (Oct-Apr 20:00-09:00 AND stay < 15 minutes)

1 Like

Ich hoffe ich kann mich hier mal mit einer Frage anschließen.

Parkgebühren werden fällig Mo-Fr zwischen 10 und 18 Uhr, sowie Sa zwischen 10 und 13 Uhr. An Sonn- und Feiertagen werden keine Gebühren erhoben. Zusätzlich sind die Samstage vor den Adventssonntagen gebührenfrei.

Meine Idee für den einfacheren Teil, wobei ich mir bei PH nicht sicher bin, ob man ein no @ dort setzen kann:

fee=no
fee:conditional=yes @ Mo-Fr 10:00-18:00; yes @ Sa 10:00-13:00; no @ PH

Jetzt wird im Wiki ja ausdrücklich darauf hingewiesen, dass fee nicht dem opening_hours Schema folgt, aber zu Adventstagen bzw. den Samstagen davor ist bei fee halt nichts beschrieben (gilt übrigens auch für Feiertage).

Analog dem opening_hours Schema könnte ich mir hier noch folgendes vorstellen.

fee=no
fee:conditional= yes @ Mo-Fr 10:00-18:00; yes @ Sa 10:00-13:00; no @ PH; no @ Nov 27-Dec 03 Su – 1 day; no @ Dec 04-10 Su - 1 day; no @ Dec 11-17 Su – 1 day; no @ Dec 18-24 Su – 1 day

Macht das Sinn und wäre das überhaupt korrekt?

Warum so umständlich mit no @ Nov 27-Dec 03 Su – 1 day anstelle von no @ Nov 26-Dec 02 Sa?

Fee nicht, aber :conditional:

Time and date: Use the standard opening hours syntax

1 Like

Wenn man mehrere Bedingungen auflistet und den möglichen Adventzeitraum zusammenfasst, kann man die Liste deutlich verkürzen. Bei komplexen Regeln werden Klammern empfohlen. Ausnahmen mit “off” müssen nach einem Semikolon stehen, da sie ja die vorige Regeln überschreiben.

fee:conditional=yes @ (Mo-Fr 10:00-18:00, Sa 10:00-13:00; PH off; Nov 26-Dec 23 Sa off)

Danke euch beiden. Das werde ich mal so eintragen. :+1: