$B$U$J$P$5$s(B
$B@.@%$G$9!#(B
RubySpec
$B$rD/$a$F$$$F$$$/$D$+5$$E$$$?$3$H$,$"$k$N$G<ALd$5$;$F$/$@$5$$!#(B
$B$^$:!"(BDateTime.new $B$NBh(B3~6$B0z?t$KC<?t$rM?$($?>l9g$G$9$,!"(B
irb(main):002:0> DateTime.new(4172,1,1,Rational(1,2))
=> #<DateTime: 4172-01-01T00:30:00+00:00
((3244852j,1800s,0n),+0s,2299161j)>
irb(main):003:0> DateTime.new(4172,1,1,Rational(1,2),0)
ArgumentError: invalid fraction
irb(main):004:0> DateTime.new(4172,1,1,1.5)
=> #<DateTime: 4172-01-01T01:30:00+00:00
((3244852j,5400s,0n),+0s,2299161j)>
irb(main):005:0> DateTime.new(4172,1,1,1.5,0)
ArgumentError: invalid fraction
$B0J>e$O(B 1.9.2 $B$G$OA4$FDL$k$N$G$9$,!";EMMJQ99$G$7$g$&$+!#(B
$B0J2<$N%Q%C%A$rEv$F$k$H0JA0$N5sF0$KLa$k$h$&$G$9$,!#(B
diff --git a/ext/date/date_core.c b/ext/date/date_core.c
index cd2bc68…0ae553b 100644
— a/ext/date/date_core.c
+++ b/ext/date/date_core.c
@@ -3071,8 +3071,6 @@ s_trunc(VALUE s, VALUE *fr)
{
s = s##_trunc(v##s, &fr);
if (f_nonzero_p(fr)) {\
-
if (argc > n)\
-
}rb_raise(rb_eArgError, "invalid fraction");\ fr2 = fr;\
}
@@ -3081,8 +3079,6 @@ s_trunc(VALUE s, VALUE *fr)
{
s = NUM2INT(s##_trunc(v##s, &fr));
if (f_nonzero_p(fr)) {\ -
if (argc > n)\
-
}rb_raise(rb_eArgError, "invalid fraction");\ fr2 = fr;\
}
$B<!$K!"(BDateTime.new$B$NBh(B4$B0z?t$K(B24$B$rM?$($?>l9g$K$D$$$F!"(B
irb(main):002:0> DateTime.new(4172,1,1,23)
=> #<DateTime: 4172-01-01T23:00:00+00:00
((3244852j,82800s,0n),+0s,2299161j)
irb(main):003:0> DateTime.new(4172,1,1,24)
=> #<DateTime: 4172-01-01T23:00:00+00:00
((3244853j,0s,0n),+0s,2299161j)>
irb(main):002:0> DateTime.new(4172,1,1,24).hour
=> 24
irb(main):003:0> DateTime.new(4172,1,1,24).day
=> 1
irb(main):004:0> DateTime.new(4172,1,2)
=> #<DateTime: 4172-01-02T00:00:00+00:00
((3244853j,0s,0n),+0s,2299161j)>
$B0JA0$+$i0z?t$H$7$F(Bhour=24$B$N$5v$5$l$F$$$k$s$G$9$,!J1<ICBP:v(B?$B!K!"(B
$B8=:$O7+$j>e$,$i$J$$$h$&$K$J$C$F$$$^$9!#(B
$B$3$l<+BN$O;EMMJQ99$J$i$P$=$l$G$$$$$N$G$9$,!"(B
$B$@$H$7$F$b(B inspect $B7k2L$,$*$+$7$$$h$&$K8+$($^$9!#(B
$B$J$!"(B1.9.2 $B$@$H0J2<$N$H$$jN>J}$H$bMbF|(B0$B;~$K$J$j$^$9!#(B
irb(main):002:0> DateTime.new(4172,1,1,24)
=> #<DateTime: 4172-01-02T00:00:00+00:00 (6489705/2,0,2299161)>
irb(main):003:0> DateTime.new(4172,1,2,0)
=> #<DateTime: 4172-01-02T00:00:00+00:00 (6489705/2,0,2299161)>
irb(main):002:0> DateTime.new(4172,1,1,24).hour
=> 0
irb(main):003:0> DateTime.new(4172,1,1,24).day
=> 2