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
-~----------~----~----~----~------~----~------~--~---