diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-04-21 16:43:15 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-04-21 16:43:15 +0000 |
commit | 16dc9e04cbedff54c12235ae81121ce2f4acad1e (patch) | |
tree | 30a16018a174c210d20a8999b6ce81c233b72000 /lib | |
parent | 7930673c5dd0c7d20844f5abf1ca9a7c59df3132 (diff) | |
download | ruby-16dc9e04cbedff54c12235ae81121ce2f4acad1e.tar.gz |
* 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
Diffstat (limited to 'lib')
-rw-r--r-- | lib/time.rb | 16 |
1 files changed, 15 insertions, 1 deletions
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 |