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