Use ActiveSupport . However, he sees Monday as the start of the week.
require 'active_support'
d = Date.today
sun = d.beginning_of_week - 1.day
sat = d.end_of_week - 1.day
More work is needed if it is Sunday.
def week_ends(date)
sun = date.beginning_of_week - 1.day
sat = date.end_of_week - 1.day
if date.sunday?
sun += 1.week
sat += 1.week
end
[sun, sat]
end
p d = Date.today
p week_ends(d)
p d = Date.yesterday
p week_ends(d)
leads to
Mon, 25 Jan 2010
[Sun, 24 Jan 2010, Sat, 30 Jan 2010]
Sun, 24 Jan 2010
[Sun, 24 Jan 2010, Sat, 30 Jan 2010]
source
share