Add DateTime#subsec

Mirrors the Time#subsec method by returning the fraction
of the second as a Rational.
This commit is contained in:
Andrew White 2016-04-23 19:18:38 +01:00
parent 88d844b278
commit a424bbb242
3 changed files with 16 additions and 0 deletions

@ -1,3 +1,7 @@
* Add `DateTime#subsec` to return the fraction of a second as a `Rational`.
*Andrew White*
* Add additional aliases for `DateTime#utc` to mirror the ones on
`ActiveSupport::TimeWithZone` and `Time`.

@ -28,6 +28,13 @@ def seconds_until_end_of_day
end_of_day.to_i - to_i
end
# Returns the fraction of a second as a +Rational+
#
# DateTime.new(2012, 8, 29, 0, 0, 0.5).subsec # => (1/2)
def subsec
sec_fraction
end
# Returns a new DateTime where one or more of the elements have been changed
# according to the +options+ parameter. The time options (<tt>:hour</tt>,
# <tt>:min</tt>, <tt>:sec</tt>) reset cascadingly, so if only the hour is

@ -400,4 +400,9 @@ def test_nsec
assert_equal 0, DateTime.civil(2000).nsec
assert_equal 500000000, DateTime.civil(2000, 1, 1, 0, 0, Rational(1,2)).nsec
end
def test_subsec
assert_equal 0, DateTime.civil(2000).subsec
assert_equal Rational(1,2), DateTime.civil(2000, 1, 1, 0, 0, Rational(1,2)).subsec
end
end