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