diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-11-05 14:59:51 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-11-05 14:59:51 +0000 |
commit | a03411b63ef86badb8fe03d14e6443420131717b (patch) | |
tree | b3523facbe421065031ca588a53dfa43b0681276 | |
parent | 85e749080ead970f92c4ce3803e1399aefab1c48 (diff) | |
download | ruby-a03411b63ef86badb8fe03d14e6443420131717b.tar.gz |
fix vtm_add_offset yday on last day of year.
* time.c (vtm_add_offset): Fix yday on last day of year.
[ruby-core:72878] [Bug #11994] Fixed by Andrew White.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56599 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | test/ruby/test_time.rb | 17 | ||||
-rw-r--r-- | time.c | 2 |
3 files changed, 25 insertions, 3 deletions
@@ -1,3 +1,8 @@ +Sat Nov 5 23:46:03 2016 Tanaka Akira <akr@fsij.org> + + * time.c (vtm_add_offset): Fix yday on last day of year. + [ruby-core:72878] [Bug #11994] Fixed by Andrew White. + Sat Nov 5 23:30:41 2016 Shugo Maeda <shugo@ruby-lang.org> * lib/net/http.rb (Net::HTTP.post): new convenience method to send @@ -64,7 +69,7 @@ Sat Nov 5 17:29:06 2016 Tanaka Akira <akr@fsij.org> * lib/resolv.rb (Resolv::DNS#extract_resources): Use each_resource instead of each_answer. - [ruby-core:75461] [Bug#12372] reported by Rafael Fernandez Lopez. + [ruby-core:75461] [Bug #12372] reported by Rafael Fernandez Lopez. Sat Nov 5 17:18:24 2016 NARUSE, Yui <naruse@ruby-lang.org> @@ -106,7 +111,7 @@ Sat Nov 5 13:52:52 2016 Akinori MUSHA <knu@iDaemons.org> Sat Nov 5 12:14:31 2016 Tanaka Akira <akr@fsij.org> * ext/pathname/pathname.c (Pathname#empty?): New method. - [ruby-core:76404] [Feature#12596] Proposed by John Backus. + [ruby-core:76404] [Feature #12596] Proposed by John Backus. Sat Nov 5 11:53:02 2016 Shugo Maeda <shugo@ruby-lang.org> diff --git a/test/ruby/test_time.rb b/test/ruby/test_time.rb index 5a2ad42491..60bed87c9c 100644 --- a/test/ruby/test_time.rb +++ b/test/ruby/test_time.rb @@ -1072,4 +1072,21 @@ class TestTime < Test::Unit::TestCase assert_equal now2, now3 assert_equal now2.zone, now3.zone end + + def test_strftime_yearday_on_last_day_of_year + t = Time.utc(2015, 12, 31, 0, 0, 0) + assert_equal("365", t.strftime("%j")) + t = Time.utc(2016, 12, 31, 0, 0, 0) + assert_equal("366", t.strftime("%j")) + + t = Time.utc(2015, 12, 30, 20, 0, 0).getlocal("+05:00") + assert_equal("365", t.strftime("%j")) + t = Time.utc(2016, 12, 30, 20, 0, 0).getlocal("+05:00") + assert_equal("366", t.strftime("%j")) + + t = Time.utc(2016, 1, 1, 1, 0, 0).getlocal("-05:00") + assert_equal("365", t.strftime("%j")) + t = Time.utc(2017, 1, 1, 1, 0, 0).getlocal("-05:00") + assert_equal("366", t.strftime("%j")) + end end @@ -1889,7 +1889,7 @@ vtm_add_offset(struct vtm *vtm, VALUE off) vtm->mday = 31; vtm->mon = 12; /* December */ vtm->year = sub(vtm->year, INT2FIX(1)); - vtm->yday = leap_year_v_p(vtm->year) ? 365 : 364; + vtm->yday = leap_year_v_p(vtm->year) ? 366 : 365; } else if (vtm->mday == 1) { const int *days_in_month = leap_year_v_p(vtm->year) ? |