[ruby-core:91096] [Ruby trunk Bug#15506] ArgumentError on some ordinal dates

From: naruse@...
Date: 2019-01-15 08:54:15 UTC
List: ruby-core #91096
Issue #15506 has been updated by naruse (Yui NARUSE).

Backport changed from 2.4: REQUIRED, 2.5: REQUIRED, 2.6: REQUIRED to 2.4: REQUIRED, 2.5: REQUIRED, 2.6: DONE

ruby_2_6 r66825 merged revision(s) 66735.

----------------------------------------
Bug #15506: ArgumentError on some ordinal dates
https://bugs.ruby-lang.org/issues/15506#change-76332

* Author: v49564 (Victor Bruley)
* Status: Closed
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]
* Backport: 2.4: REQUIRED, 2.5: REQUIRED, 2.6: DONE
----------------------------------------
Seems the bug was introduced with r64028:
Adding the difference between two ordinal dates (source:lib/time.rb#L210 : `day += diff`) results in month days superior to 31 for dates at the beginning of a month, causing the out of range error.

~~~
require "time"
Time.strptime("91095", "%y%j")
 => 1991-04-05 00:00:00 -0400

Time.strptime("91093", "%y%j")
Traceback (most recent call last):
        4: from lib/ruby/2.6.0/time.rb:451:in `strptime'
        3: from lib/ruby/2.6.0/time.rb:211:in `make_time'
        2: from lib/ruby/2.6.0/time.rb:257:in `make_time'
        1: from lib/ruby/2.6.0/time.rb:257:in `local'
ArgumentError (argument out of range)
~~~




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next