这是在Ruby中找到闰年最有效的方法吗?

时间:2014-03-17 12:18:44

标签: ruby while-loop

我昨天开始阅读学习计划,第2版。我觉得很容易理解,我非常喜欢它。我来到一个部分,我面临着建立一个Ruby应用程序的挑战,该应用程序将告诉我哪些年是闰年。我想知道你认为我是如何使这个应用程序工作的。它有效,这很好,但它是最有效的方式吗?

(闰年可以被4整除。所以我知道使用模数,每个闰年必须%4 == 0。)

puts "So you want to know which years are leap years?"

puts "What year to begin with?"
ySt = gets.chomp.to_i

puts "What year to end with?"
yEn = gets.chomp.to_i

while ySt <= yEn

if ySt % 4 == 1
    ySt = ySt + 3
elsif ySt % 4 == 2
    ySt = ySt + 2
elsif ySt % 4 == 3
    ySt = ySt + 1
end

puts ySt
ySt = ySt + 4
end

对于我来说,这是Ruby的第二天,我很自豪我做了这个工作,因为书中没有提供任何帮助或示例。我只想看看别人会怎么做,或者你觉得这很棒!

提前谢谢你。当我变得更有经验时,我一定会在StackOverflow上返回知识和支持。

1 个答案:

答案 0 :(得分:1)

Ruby有一个方法Date::leap?

require 'date'

(1980..2000).each do |year|
  puts year if Date.leap?(year)
end

输出:

1980
1984
1988
1992
1996
2000