module DateAndTime::Calculations

def beginning_of_week(start_day = Date.beginning_of_week)

+DateTime+ objects have their time set to 0:00.
+Date.beginning_of_week+ or +config.beginning_of_week+ when set.
Week is assumed to start on +start_day+, default is
Returns a new date/time representing the start of this week on the given day.
def beginning_of_week(start_day = Date.beginning_of_week)
  result = days_ago(days_to_week_start(start_day))
  acts_like?(:time) ? result.midnight : result
end