提交 c766f3e4 编写于 作者: P Pawel Pierzchala

Nano seconds fraction of time is copied properly in Time#advance

When day, month or year was passed, advance created a new time
ignoring previous nsec fraction. Now nsec is passed through
usec as a Rational number.
上级 78372b6c
......@@ -78,7 +78,7 @@ def change(options)
options[:hour] || hour,
options[:min] || (options[:hour] ? 0 : min),
options[:sec] || ((options[:hour] || options[:min]) ? 0 : sec),
options[:usec] || ((options[:hour] || options[:min] || options[:sec]) ? 0 : usec)
options[:usec] || ((options[:hour] || options[:min] || options[:sec]) ? 0 : Rational(nsec, 1000))
)
end
......
......@@ -491,6 +491,11 @@ def test_utc_advance
assert_equal Time.utc(2013,10,17,20,22,19), Time.utc(2005,2,28,15,15,10).advance(:years => 7, :months => 19, :weeks => 2, :days => 5, :hours => 5, :minutes => 7, :seconds => 9)
end
def test_advance_with_nsec
t = Time.at(0, Rational(108635108, 1000))
assert_equal t, t.advance(:months => 0)
end
def test_prev_week
with_env_tz 'US/Eastern' do
assert_equal Time.local(2005,2,21), Time.local(2005,3,1,15,15,10).prev_week
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册