diff options
author | Nobuyoshi Nakada <[email protected]> | 2020-07-12 14:09:48 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <[email protected]> | 2020-07-12 21:58:13 +0900 |
commit | 99a9c3fe2eaab8157765d792dc871da6daea0327 (patch) | |
tree | ae623193dfd48aa2af9280d878ca382f4063e68e /time.c | |
parent | 90935ff29424c4542d2122f4097ec684cb4b3adf (diff) |
Fixed yday and wday with timezone [Bug #17024]
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/3312
Diffstat (limited to 'time.c')
-rw-r--r-- | time.c | 13 |
1 files changed, 9 insertions, 4 deletions
@@ -4580,14 +4580,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; \ } /* @@ -4719,6 +4720,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); } |