简单的Ruby Chris Pine闰年

时间:2013-03-16 04:24:37

标签: ruby

您好我需要帮助克里斯派恩斯的一本书中的问题,该书要求列出起始年和结束年之间的闰年。我已经看到它做了其他方式,但我想知道是否有任何方式使这个代码工作?它出什么问题了?我是编程新手。谢谢! 它给出了这个错误。

(eval):22: (eval):22: compile error (SyntaxError)
(eval):22: syntax error, unexpected $end, expecting kEND

我的节目:

def years(starting, ending)
  while starting <= ending
    while (starting % 4 == 0) && (starting % 400 == 0)
      puts starting
    unless starting % 100 == 0
  end
  starting += 1
end

2 个答案:

答案 0 :(得分:3)

错误消息表明代码中的while循环缺少end语句。

在不检查逻辑的正确性的情况下,代码本身的结构如下:

def years(starting, ending)
  while starting <= ending
    while (starting % 4 == 0) && (starting % 400 == 0)
      puts starting unless starting % 100 == 0
    end
    starting += 1
  end
end

答案 1 :(得分:0)

您可以使用日期方法跳跃吗?它会返回真或假

require 'date'
def leap_year?(year)
  Date.new(year).leap?
end

http://ruby-doc.org/stdlib-2.0/libdoc/date/rdoc/Date.html#method-c-leap-3F