M
Mikkel Bruun
Siep said:Yes. Here is my effort anyway:
require 'date'
require 'enumerator'
def days_to_show(year, month, num_week_rows)
# returns an array of the dates in month,
# with the last days of the preceding month
# and the first days of the next month
first_of_month = Date.new(year, month, 1)
first = first_of_month - (first_of_month.wday)+1
# +1 for weeks starting on monday, remove for weeks starting on sunday
last = first + (num_week_rows * 7)
(first...last).to_a
end
days = days_to_show(2008, 3, 6)
days.each_slice(7) do |week|
print "| "
week.each{|day| print day.to_s + "\t| "}
puts
end
The only thing noteworthy is the range of dates, which produces an
array.
Regards,
Siep
That is really an elegant solution and it works between years
also....but....
What happens when you run ays = days_to_show(2008, 6, 6) ??? it shows
june as starting on sunday 2 of june....
really wierd
Mikkel