This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.
| Finding the Day of the Week | ||
|---|---|---|
| Code | Expected | Actual |
def every_sunday(d1, d2)
# You can use 1.day instead of 60*60*24 if you're using Rails.
one_day = d1.is_a?(Time) ? 60*60*24 : 1
sunday = d1 + ((7-d1.wday) % 7) * one_day
while sunday < d2
yield sunday
sunday += one_day * 7
end
end
def print_every_sunday(d1, d2)
every_sunday(d1, d2) { |sunday| puts sunday.strftime("%x")}
end
print_every_sunday(Time.local(2006, 1, 1), Time.local(2006, 2, 4)) |
01/01/06 01/08/06 01/15/06 01/22/06 01/29/06 |
01/01/06 01/08/06 01/15/06 01/22/06 01/29/06 |
t = Time.local(2006, 1, 1)
t.strftime("%A %A %A!") |
"Sunday Sunday Sunday!" | "Sunday Sunday Sunday!" |
t.strftime("%a %a %a!") |
"Sun Sun Sun!" | "Sun Sun Sun!" |
require 'date'
module Week
def week
(yday + 7 - wday) / 7
end
end
class Date
include Week
end
class Time
include Week
end
saturday = DateTime.new(2005, 1, 1)
saturday.week |
0 | 0 |
(saturday+1).week |
1 #Sunday, January 2 | 1 |
(saturday-1).week |
52 #Friday, December 31 | 52 |