Wie schreibt man so etwas, das spät abends geöffnet ist und am nächsten Tag von 23:00 bis 5:00 Uhr um 15% zunimmt? Die Geschichte. Ich möchte ein gutes Urteil über die Bedingung "23:00 bis 5:00 am nächsten Tag" abgeben.
Wenn Sie versuchen, nach Zeittyp zu vergleichen, ist es schwierig, die Datumsinformationen einzugeben, sodass Sie nur den Zeitteil mit "strftime" und "to_i" vergleichen können.
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