Guest User

Untitled

a guest
Jul 15th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. class OpeningTime
  2.  
  3. attr_accessor :intervals
  4.  
  5. def initialize
  6. @intervals = Array.new
  7. end
  8.  
  9. def is_open?
  10. d = Date.new
  11. t = Time.new
  12. now = OpeningTime.time_in_week(d.cwday, t.hour, t.min)
  13. @intervals.each do |i|
  14. return true if i.include? now
  15. end
  16. false
  17. end
  18.  
  19. def self.time_in_week(d,h,m)
  20. time = (d*24).hours + h.hours + m.minutes
  21. time % (7*24).hours
  22. end
  23.  
  24. end
  25.  
  26. class Interval
  27.  
  28. def initialize(s,t)
  29. @since = s
  30. @till = t
  31. end
  32.  
  33. def include?(t)
  34. ((t >= @since) && (t <= @till))
  35. end
  36.  
  37. end
  38.  
  39.  
  40. # josef-hovads-computer:~/Work/PizzaRiviera pepe$ script/console
  41. # Loading development environment (Rails 2.3.3)
  42. # >> ot = OpeningTime.new
  43. # => #<OpeningTime:0x3698b58 @intervals=[]>
  44. # >> ot.is_open?
  45. # => false
  46. # >> ot.intervals << Interval.new(OpeningTime.time_in_week(1,12,30),OpeningTime.time_in_week(2,0,0))
  47. # => [#<Interval:0x366e484 @till=172800, @since=131400>]
  48. # >> ot.is_open?
  49. # => true
Add Comment
Please, Sign In to add comment