From 16dc9e04cbedff54c12235ae81121ce2f4acad1e Mon Sep 17 00:00:00 2001 From: akr Date: Tue, 21 Apr 2009 16:43:15 +0000 Subject: * time.c (time_arg): use the year argument as-is. [ruby-dev:38194] * lib/time.rb (Time.parse): interpret small year 0..99 as 1950..2049. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23247 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/time.rb | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'lib/time.rb') diff --git a/lib/time.rb b/lib/time.rb index 031a4135ef..8a4d1ab2a8 100644 --- a/lib/time.rb +++ b/lib/time.rb @@ -258,7 +258,21 @@ class Time raise ArgumentError, "no time information in #{date.inspect}" end year = d[:year] - year = yield(year) if year && block_given? + if year + if block_given? + year = yield(year) + else + year = if year < 0 + year + elsif year < 50 + 2000 + year + elsif year < 100 + 1900 + year + else + year + end + end + end make_time(year, d[:mon], d[:mday], d[:hour], d[:min], d[:sec], d[:sec_fraction], d[:zone], now) end -- cgit v1.2.3