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