Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Returns a new Time representing the "start" of this week (Monday, 0:00)
- def beginning_of_week
- days_to_monday = self.wday!=0 ? self.wday-1 : 6
- (self - days_to_monday.days).midnight
- end
- alias :monday :beginning_of_week
- alias :at_beginning_of_week :beginning_of_week
- # Returns a new Time representing the start of the given day in next week (default is Monday).
- def next_week(day = :monday)
- days_into_week = { :monday => 0, :tuesday => 1, :wednesday => 2, :thursday => 3, :friday => 4, :saturday => 5, :sunday => 6}
- # Adjust in case of switches to or from daylight savings time
- week_from_today = self.since(1.week) + (self.since(1.week) <=> self).hour
- week_from_today.beginning_of_week.since(days_into_week[day].day).change(:hour => 0)
- end
Add Comment
Please, Sign In to add comment