作者: Shinya Kawaji
日時: 2002/12/23(14:38)
かわじ、です


> では、プログラム的にアレンジして、2002年から3333年の間に何回あるでしょうか?


Ruby で、何も考えずに書くと以下の通り。

他のプログラムのように条件と年から月日を逆算せずに、
“何も考えずに”その年月日が条件に該当するかを調べています。

# これじゃ本当に、何も考えていないなあ・・・


require 'date'

TARGET_NUMBER = 3333
DATE_SPAN     = Date.new(2002,1,1) .. Date.new(TARGET_NUMBER,12,31)

sum = 0

DATE_SPAN.each{|date|
  if TARGET_NUMBER == date.year + (date.mon * 100) + date.day
    sum += 1
    puts sprintf('%d + %02d%02d = %d', date.year, date.mon, date.day, TARGET_NUMBER)
  end
}
puts sprintf('Total: %ddays', sum)