Skip to content

Commit

Permalink
Showing 2 changed files with 15 additions and 10 deletions.
17 changes: 7 additions & 10 deletions core/src/main/java/org/jruby/ext/date/RubyDate.java
Original file line number Diff line number Diff line change
@@ -545,21 +545,18 @@ private static RubyDate jdImpl(ThreadContext context, IRubyObject self, IRubyObj

static DateTime adjustWithDayFraction(ThreadContext context, DateTime dt, final long[] rest) {
final RubyFixnum zero = RubyFixnum.zero(context.runtime);
int ival = getHour(context, zero, rest);
int ival;

ival = getHour(context, zero, rest);
dt = dt.plusHours(ival);

if (rest[0] != 0) {
ival = getHour(context, zero, rest);
dt = dt.plusHours(ival);
ival = getMinute(context, zero, rest);
dt = dt.plusMinutes(ival);

if (rest[0] != 0) {
ival = getMinute(context, zero, rest);
dt = dt.plusMinutes(ival);

if (rest[0] != 0) {
ival = getSecond(context, zero, rest);
dt = dt.plusSeconds(ival);
}
ival = getSecond(context, zero, rest);
dt = dt.plusSeconds(ival);
}
}
return dt;
8 changes: 8 additions & 0 deletions test/jruby/test_date.rb
Original file line number Diff line number Diff line change
@@ -744,4 +744,12 @@ def test_strftime__offset
end
end

def test_jd_day_fraction
t = 86400 * DateTime.new(1970, 1, 1).jd + Time.utc(2018, 3, 18, 23).to_i
dt = DateTime.jd((t + 0)/86400r)
assert_equal '2018-03-18T23:00:00+00:00', dt.to_s
dt = DateTime.jd((t + 1)/86400r)
assert_equal '2018-03-18T23:00:01+00:00', dt.to_s
end

end

0 comments on commit 69364e2

Please sign in to comment.