ruby学習メモ 練習問題

CodeZine「脱 超初心者 Javaアルゴリズム問題集 第2回」を ruby でやってみる

http://codezine.jp/careerup/article/aid/1495.aspx

問題1

標準入力された月、日が、今日であるかどうかを判定するプログラムを作成してください。

  • コマンドラインに「今日は何月何日でしょう?」のメッセージを表示する。
  • それぞれ、「何月?==> 」「何日? ==> 」を表示して入力を受け取る。
  • 入力された月日が今日であれば「正解!!」、間違っていれば「間違っています」と表示する。
回答?
# 脱 超初心者 Javaアルゴリズム問題集 第2回
# 条件分岐(複合条件)
#
# http://codezine.jp/careerup/article/aid/1495.aspx

class Study2
  def start
    puts "今日は何月何日でしょう?"
    print "何月?==>"
    month = Integer(readline)

    print "何日?==>"
    day = Integer(readline)
    now = Time.now

    if month == now.month && day == now.day
      puts "正解!!"
    else
      puts "間違っています。"
    end

  end
end


Study2.new.start
メモ
month = readline.chomp!

だと

month == now.month

が true にならない。String と Fixnum で型が異なるため

irb(main):276:0> readline.chomp!
=> String
irb(main):277:0> now.month.class
=> Fixnum