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
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)
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)
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
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)