閏年問題の解答

# 入力受取
puts "年を入力してください:"
year = gets.to_i
puts "月を入力してください:"
month = gets.to_i

# 各月の日数を格納した配列を用意
month_days = [31,28,31,30,31,30,31,31,30,31,30,31]

# 条件分岐を使用して、月ごとの日数を変数daysに代入する。
if month == 2  # 2月の場合、閏年か否かの判定が必要。
  if year % 4 == 0  # 4で割り切れる場合、閏年である可能性がある。
    if year % 100 == 0 && year % 400 != 0
      days = 28  # 4で割り切れて100で割り切れて400で割り切れない場合のみ、
    else         # 閏年ではない。
      days = 29
    end
  else  # 4で割り切れない場合は閏年ではない。
    days = 28
  end
else  # 2月以外の場合、配列の値をそのまま代入する。
  days = month_days[month-1]
end

# 出力
puts "#{year}年#{month}月は#{days}日間あります。"