2011-04-21 43 views

回答

11

您可以使用valid_date?但它YYYY, MM, DD

irb(main):015:0> require 'date' 
=> true 
irb(main):021:0> Date::valid_date?(2011,05,14) 
=> true 
irb(main):022:0> Date::valid_date?(2011,02,29) 
=> false 
irb(main):023:0> Date::valid_date?(2012,02,29) 
=> true 
+0

我找不到“valid_date?”的文档。你能分享一个指针吗? – 2011-04-22 03:12:53

+0

实际上,在很多文档中都是'valid_civil?' - http://corelib.rubyonrails.org/classes/Date.html#M001222但是'valid_civil?'它是'valid_date?'的别名? – 2011-04-22 05:16:11

+0

好的,非常感谢! – 2011-04-22 10:38:44

0

一种选择是使用类似:

require 'time' 

def valid(year,month,day) 
    Time.parse "#{year}#{month}#{day}" rescue return false 
    return true 
end 
4

日期有一个方法valid_civil? 。

require 'date' 
dates = DATA.readlines.map{|line| line.split(', ').map(&:to_i)} 
dates.each do |date| 
    d, m, y = date 
    puts Date.valid_civil?(y, m, d) 
end 

__END__ 
14, 05, 2011 
29, 02, 2011 
29, 02, 2012 
35, 11, 1989 
14, 18, 2011 
14, 00, 2011 
00, 11, 1979 
31, 11, 1979 
+0

对于那些想知道的,这是'官方',记录的名称,而'valid_date?'是这个方法的别名。 – Phrogz 2011-04-21 16:22:25

相关问题