class Time
def day_ordinal_suffix
if day == 11 or day == 12
return "th"
else
case day % 10
when 1 then return "st"
when 2 then return "nd"
when 3 then return "rd"
else return "th"
end
end
end
end
time = Time.local(2008, 8, 31, 2, 3, 4, 5)
time.strftime("The %e#{time.day_ordinal_suffix} of %B") # => "The 31st of December"