Max et contrôles de temps min dans la déclaration de cas à l'aide de Ruby?
-
11-10-2019 - |
Question
quoi vérifier un temps avec une déclaration de cas. Comment faire?
La solution
Il suffit d'utiliser la version qui ne dispose pas d'une variable définie au sommet ...
t = event.time # arbitrary example.
case
when t <= Time.now
# Event is in the past.
else
# Event is in the future.
end
Autres conseils
utiliser des plages:
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
Plages de travail avec toutes sortes de valeurs. Vous pouvez utiliser Date
s aussi:
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
Mise à jour: Ruby 1.9 cassé des plages de temps, de sorte que cet exemple ne fonctionne que dans Ruby 1.8.7. L'exemple Date fonctionne dans les deux versions cependant. En 1.9, vous pouvez utiliser ce code pour correspondre à un temps:
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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow