Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class OpeningTime
- attr_accessor :intervals
- def initialize
- @intervals = Array.new
- end
- def is_open?
- d = Date.new
- t = Time.new
- now = OpeningTime.time_in_week(d.cwday, t.hour, t.min)
- @intervals.each do |i|
- return true if i.include? now
- end
- false
- end
- def self.time_in_week(d,h,m)
- time = (d*24).hours + h.hours + m.minutes
- time % (7*24).hours
- end
- end
- class Interval
- def initialize(s,t)
- @since = s
- @till = t
- end
- def include?(t)
- ((t >= @since) && (t <= @till))
- end
- end
- # josef-hovads-computer:~/Work/PizzaRiviera pepe$ script/console
- # Loading development environment (Rails 2.3.3)
- # >> ot = OpeningTime.new
- # => #<OpeningTime:0x3698b58 @intervals=[]>
- # >> ot.is_open?
- # => false
- # >> ot.intervals << Interval.new(OpeningTime.time_in_week(1,12,30),OpeningTime.time_in_week(2,0,0))
- # => [#<Interval:0x366e484 @till=172800, @since=131400>]
- # >> ot.is_open?
- # => true
Add Comment
Please, Sign In to add comment