GitHub

Original file line numberDiff line numberDiff line change

@@ -460,7 +460,8 @@ time_mktime(mrb_state *mrb, mrb_int ayear, mrb_int amonth, mrb_int aday,

460460

#define OUTINT(x) 0

461461

#endif

462462
463-

if (ayear < 1900 || OUTINT(ayear-1900) ||

463+

ayear -= 1900;

464+

if (OUTINT(ayear) ||

464465

amonth < 1 || amonth > 12 ||

465466

aday < 1 || aday > 31 ||

466467

ahour < 0 || ahour > 24 ||

@@ -469,7 +470,7 @@ time_mktime(mrb_state *mrb, mrb_int ayear, mrb_int amonth, mrb_int aday,

469470

asec < 0 || asec > 60)

470471

mrb_raise(mrb, E_ARGUMENT_ERROR, "argument out of range");

471472
472-

nowtime.tm_year = (int)(ayear - 1900);

473+

nowtime.tm_year = (int)ayear;

473474

nowtime.tm_mon = (int)(amonth - 1);

474475

nowtime.tm_mday = (int)aday;

475476

nowtime.tm_hour = (int)ahour;

Read the original on github.com ↗