Вопрос по ruby – проверить время между 9.30 и 4 рубинами

10

у меня есть код, который ошибочно создает его, и я думаю, что должен быть лучший способ проверить время & gt; 9:30 утра и время & lt; 4 вечера любые идеи высоко ценятся.

<code>def checkTime

   goodtime=false
   if(Time.now.hour>9 and Time.now.min>30) then

     if(Time.now.hour<16) then
       goodtime=true

     else
       # do nothing
     end
   elsif Time.now.hour>9 and Time.now.hour<16 then
     goodtime=true

   else
      # do nothing
   end
   return goodtime

 end
</code>

Ваш Ответ

4   ответа
5
def check_time(t=Time.now)
  early = Time.new(t.year, t.month, t.day, 9, 30, 0, t.utc_offset)
  late  = Time.new(t.year, t.month, t.day, 16, 0, 0, t.utc_offset)
  t.between?(early, late)
end
Error: User Rate Limit Exceededinitialize' from (irb):7:in Error: User Rate Limit Exceeded junkone
6
t = Time.now

Range.new(
  Time.local(t.year, t.month, t.day, 9),
  Time.local(t.year, t.month, t.day, 16, 30)
) === t
Error: User Rate Limit ExceededTypeError: can't iterate from TimeError: User Rate Limit Exceeded.to_iError: User Rate Limit Exceededt.to_iError: User Rate Limit Exceeded
3

Работая в смешанной версии и нуждаясь в этом точном методе, вот что я вставил в свой код:

if RUBY_VERSION == "1.9.3"
  def check_time(starthour,endhour,t=Time.now)
    early = Time.new(t.year, t.month, t.day, starthour, 0, 0)
    late  = Time.new(t.year, t.month, t.day, endhour, 0, 0)
    t.between?(early, late)
  end
elsif RUBY_VERSION == "1.8.7"
  def check_time(starthour,endhour,t=Time.now)
    early = Time.local(t.year, t.month, t.day, starthour, 0, 0)
    late  = Time.local(t.year, t.month, t.day, endhour, 0, 0)
    t.between?(early, late)
  end
end
3

def checkTime
  return ((Time.now.hour * 60) + Time.now.min) >= 570 && ((Time.now.hour * 60) + Time.now.min) < 960
end
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded junkone
Error: User Rate Limit ExceededNoMethodError: undefined method `minutes' for 2012-04-10 18:19:18 +0200:Time

Похожие вопросы