From: naruse@... Date: 2019-01-15T08:54:15+00:00 Subject: [ruby-core:91096] [Ruby trunk Bug#15506] ArgumentError on some ordinal dates 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: