Max und min Zeitkontrollen in case-Anweisung mit Ruby?
-
11-10-2019 - |
Frage
ich, was eine Zeit mit einer Case-Anweisung zu überprüfen. Wie zu tun?
Lösung
Sie einfach die Version verwenden, die nicht eine definierte Variable an der Spitze hat ...
t = event.time # arbitrary example.
case
when t <= Time.now
# Event is in the past.
else
# Event is in the future.
end
Andere Tipps
Verwenden Bereiche:
case time
when (Time.now - 60)..(Time.now) then puts 'within the last minute'
when (Time.now - 3600)..(Time.now) then puts 'within the last hour'
end
Bereiche arbeiten mit allen Arten von Werten. Sie können Date
s verwenden auch:
case date
when (Date.today - 1)..(Date.today) then puts 'less than a day ago'
when (Date.today - 30)..(Date.today) then puts 'less than a month ago'
end
Update: Ruby 1.9 brach Zeitbereiche, so dass beispielsweise nur in Ruby 1.8.7 funktioniert. Das Datum Beispiel funktioniert in beiden Versionen aber. In 1.9 können Sie diesen Code verwenden, um eine Zeit zu entsprechen:
case time.to_i
when ((Time.now - 60).to_i)..(Time.now.to_i) then puts 'within the last minute'
when ((Time.now - 3600).to_i)..(Time.now.to_i) then puts 'within the last hour'
end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow