如果您HH:MM
是字符串,并且它们始终是零填充的(例如“03:08”),那么您可以使用简单的字符串比较:
irb:02> first = "03:17"; last = "11:54"
#=> "11:54"
irb:03> range = first..last
#=> "03:17".."11:54"
irb:04> range.include? "00:00"
#=> false
irb:05> range.include? "03:50"
#=> true
irb:06> range.include? "03:09"
#=> false
irb:07> range.include? "12:17"
#=> false
irb:08> range.include? "11:17"
#=> true
如果您的 STARTTIME 和 ENDTIME 作为实例进入 Ruby,Time
那么您可以编写一个将它们转换为字符串 ( my_time.strftime('%H:%M')
) 的方法,或者您可以简单地编写一个比较器:
# Returns true if hour:min is between the times in t1 and t2
def between(hour,min,t1,t2)
t1.hour<=hour && hour<=t2.hour && t1.min<=min && min<=t2.min
end