Reputation: 2267
I want to find all items created in a given week, and pass in a week number param. (created_at is a normal timestamp.)
Given a week number, what is the easiest way to find a date in that particular week? (Any date in the week will do, as I will use beginning_of_week and end_of_week in the scope.)
Upvotes: 32
Views: 14640
Reputation: 51052
You can get Date objects representing the beginning and end of your week using the commercial
method:
week = 41;
wkBegin = Date.commercial(2010, week, 1)
wkEnd = Date.commercial(2010, week, 7)
Now do your find:
Item.find(:all, :conditions->:create_date=>wkBegin..wkEnd.end_of_day)
Upvotes: 80
Reputation: 46667
Assuming you mean "a given week number in the current year", you can do the following:
2.weeks.since(Time.gm(Time.now.year))
=> Fri Jan 15 00:00:00 UTC 2010
Substitute (week_number - 1)
for the 1
in the above, and you'll get a date in the desired week.
Upvotes: 5