diff options
-rw-r--r-- | test/ruby/test_time_tz.rb | 2 | ||||
-rw-r--r-- | time.c | 13 | ||||
-rw-r--r-- | version.h | 2 |
3 files changed, 12 insertions, 5 deletions
diff --git a/test/ruby/test_time_tz.rb b/test/ruby/test_time_tz.rb index 21ac667281..f91cd66376 100644 --- a/test/ruby/test_time_tz.rb +++ b/test/ruby/test_time_tz.rb @@ -548,6 +548,8 @@ module TestTimeTZ::WithTZ m, s = (4000-utc_offset).divmod(60) h, m = m.divmod(60) assert_equal(time_class.utc(2018, 9, 1, 12+h, m, s), t) + assert_equal(6, t.wday) + assert_equal(244, t.yday) end def subtest_at(time_class, tz, tzarg, tzname, abbr, utc_offset) @@ -4322,14 +4322,15 @@ time_wday(VALUE time) GetTimeval(time, tobj); MAKE_TM(time, tobj); + if (tobj->vtm.wday == VTM_WDAY_INITVAL) { + VALUE zone = tobj->vtm.zone; + if (!NIL_P(zone)) zone_localtime(zone, time); + } return INT2FIX((int)tobj->vtm.wday); } #define wday_p(n) {\ - struct time_object *tobj;\ - GetTimeval(time, tobj);\ - MAKE_TM(time, tobj);\ - return (tobj->vtm.wday == (n)) ? Qtrue : Qfalse;\ + return (time_wday(time) == INT2FIX(n)) ? Qtrue : Qfalse; \ } /* @@ -4461,6 +4462,10 @@ time_yday(VALUE time) GetTimeval(time, tobj); MAKE_TM(time, tobj); + if (tobj->vtm.yday == 0) { + VALUE zone = tobj->vtm.zone; + if (!NIL_P(zone)) zone_localtime(zone, time); + } return INT2FIX(tobj->vtm.yday); } @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.6.7" #define RUBY_RELEASE_DATE "2021-03-02" -#define RUBY_PATCHLEVEL 170 +#define RUBY_PATCHLEVEL 171 #define RUBY_RELEASE_YEAR 2021 #define RUBY_RELEASE_MONTH 3 |