Comment écrivez-vous quelque chose comme ça, qui est ouvert tard le soir et augmente de 15% de 23h00 à 17h00 le lendemain? L'histoire. Je veux porter un bon jugement sur la condition "23 h 00 à 17 h 00 le lendemain".
Si vous essayez de comparer par type d'heure, il sera difficile de saisir les informations de date, vous ne pouvez donc comparer que la partie horaire avec strftime
et to_i
.
def late_time?(time)
num = time.strftime('%H%M').to_i
[*0..459, *2300..2359].include?(num)
end
target_time = Time.zone.parse('2020/9/1 23:00')
p late_time?(target_time) #=> true
target_time = Time.zone.parse('2020/9/2 0:00')
p late_time?(target_time) #=> true
target_time = Time.zone.parse('2020/9/2 4:59')
p late_time?(target_time) #=> true
target_time = Time.zone.parse('2020/9/2 5:00')
p late_time?(target_time) #=> false
target_time = Time.zone.parse('2020/9/2 6:00')
p late_time?(target_time) #=> false
target_time = Time.zone.parse('2020/9/2 22:59')
p late_time?(target_time) #=> false
Recommended Posts