You can look at the next_week method

http://www.railsbrain.com/api/rails-2.3.2/doc/index.html?a=M001363&name=next_week

and then back off a week. You could also take the code and create your  
own method like the beginning_of_week if it doesn't already do exactly  
what you want.

-Rob


On May 20, 2009, at 9:26 PM, Philip Hallstrom wrote:

>
>
> On May 20, 2009, at 4:55 PM, Tyler Knappe wrote:
>
>>
>> I'm creating a calendar of sorts which maps events.
>>
>> For each event, I know its start and end date/time.  I also know the
>> current date and time.  What I need to be able to do is calculate the
>> start of the week, regardless of the day of the week.
>>
>> So, if it is Wednesday and I want to populate my Calendar from
>> Monday -
>> Sunday with the events, I need to know the date of Monday to start.
>> To
>> compare absolute days I've converted them to Ruby epoch with the
>> idea of
>> comparing each day (84600 seconds) versus the end date.  If the day  
>> is
>> greater than the end date, I then check the hours of the day to see  
>> on
>> what hour the event occurred.
>>
>
> Why won't this work?
>
>>> t = Time.now
> => Wed May 20 18:23:37 -0700 2009
>>> t.beginning_of_week
> => Mon May 18 00:00:00 -0700 2009
>
> There are all kinds of fun methods in the Time class...
>
>>> t.beginning_of_day
> => Wed May 20 00:00:00 -0700 2009
>>> t.end_of_day
> => Wed May 20 23:59:59 -0700 2009
>>> t.tomorrow
> => Thu May 21 18:23:37 -0700 2009
>>> t.yesterday
> => Tue May 19 18:23:37 -0700 2009
>>> t.beginning_of_month
> => Fri May 01 00:00:00 -0700 2009
>>> t.last_month
> => Mon Apr 20 18:23:37 -0700 2009
>
> The one thing to double check is that at least at one point the
> "month" methods were 30-day based...
>
> -philip
>
>
>
>
>> It sounds convoluted, but I'm not sure of a better method.
>>
>> Code:
>>
>> This is wrong in that I'm using Date.today.to_time.to_i, rather than
>> the
>> date of the Monday of the week.
>>
>> <% for j in 0..6 do %>
>>               <%# check date first if we are past day, then check
>> hour%>
>>               <% for i in 0..23 do %>
>>                       <th><%=h i %>:00</th>
>>
>>                       <% if (j * 86400) + Date.today.to_time.to_i >
>> (@lab.end_date.to_time.to_i + ((@lab.end_time.strftime("%M").to_i) *
>> 3600)
>>                               +
>> ((@lab.end_time.strftime("%S").to_i) *
>> 60))  %>
>>                               <tr>
>>                               <% if i >
>> @lab.end_time.strftime("%M").to_i # because db stores the hour in
>> minute
>> field (as pulled by ruby) use %M %>
>>                                       <th> Available </th>
>>                               <% else %>
>>                                       <th> Checked Out </th>
>>                               <% end %>
>>                       <% end %>
>>               <% else %>
>>                               <th> Checked Out </th>
>>               <% end %>
>>       <% end %>
>> -- 
>> Posted via http://www.ruby-forum.com/.
>>
>>>
>
>
> >

Rob Biedenharn          http://agileconsultingllc.com
[email protected]
+1 513-295-4739
Skype:  rob.biedenharn



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to