 
 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 |