Class: ZoneRanger::Util
- Inherits:
-
Object
- Object
- ZoneRanger::Util
- Defined in:
- lib/zone_ranger/util.rb
Class Method Summary collapse
- .calculate_duration_in_minutes(starting, ending) ⇒ Object
- .crosses_one_utc_midnight?(start, duration) ⇒ Boolean
- .wday_match?(date1, date2) ⇒ Boolean
- .week_of_month(time) ⇒ Object
Class Method Details
.calculate_duration_in_minutes(starting, ending) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/zone_ranger/util.rb', line 32 def self.calculate_duration_in_minutes starting, ending start_hour = starting.strftime("%H") start_minutes = starting.strftime("%M") start_in_minutes = (start_hour.to_i * 60) + start_minutes.to_i finish_hour = ending.strftime("%H").to_i finish_minutes = (finish_hour * 60) + ending.strftime("%M").to_i d = finish_minutes - start_in_minutes d += 1440 if d < 0 d end |
.crosses_one_utc_midnight?(start, duration) ⇒ Boolean
21 22 23 24 25 26 |
# File 'lib/zone_ranger/util.rb', line 21 def self.crosses_one_utc_midnight? start, duration # a utc midnight is when the start day is different the blackout ends on day1 = start.utc.to_date day2 = (start + duration.minutes).utc.to_date day1 != day2 end |
.wday_match?(date1, date2) ⇒ Boolean
28 29 30 |
# File 'lib/zone_ranger/util.rb', line 28 def self.wday_match? date1, date2 date1.wday == date2.wday end |
.week_of_month(time) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/zone_ranger/util.rb', line 4 def self.week_of_month time day_num = time.day days_in_month = Time.days_in_month(time.month) if day_num < 8 1 elsif day_num < 15 2 elsif day_num < 22 3 elsif day_num < days_in_month - 7 4 # fourth but not last else :last # last end end |