Ruby 3.0.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Timeクラス > floor

instance method Time#floor

floor(ndigits=0) -> Time[permalink][rdoc]

十進小数点数で指定した桁数の精度で切り捨てをし、その Time オブジェクトを返します。 (デフォルトは0、つまり小数点の所で切り捨てます)。

ndigits には 0 以上の整数を渡します。

[PARAM] ndigits:
十進での精度(桁数)

require 'time'

t = Time.utc(2010,3,30, 5,43,25.123456789r)
t.iso8601(10)           # => "2010-03-30T05:43:25.1234567890Z"
t.floor.iso8601(10)     # => "2010-03-30T05:43:25.0000000000Z"
t.floor(0).iso8601(10)  # => "2010-03-30T05:43:25.0000000000Z"
t.floor(1).iso8601(10)  # => "2010-03-30T05:43:25.1000000000Z"
t.floor(2).iso8601(10)  # => "2010-03-30T05:43:25.1200000000Z"
t.floor(3).iso8601(10)  # => "2010-03-30T05:43:25.1230000000Z"
t.floor(4).iso8601(10)  # => "2010-03-30T05:43:25.1234000000Z"

t = Time.utc(1999,12,31, 23,59,59)
(t + 0.4).floor.iso8601(3)    # => "1999-12-31T23:59:59.000Z"
(t + 0.9).floor.iso8601(3)    # => "1999-12-31T23:59:59.000Z"
(t + 1.4).floor.iso8601(3)    # => "2000-01-01T00:00:00.000Z"
(t + 1.9).floor.iso8601(3)    # => "2000-01-01T00:00:00.000Z"

t = Time.utc(1999,12,31, 23,59,59)
(t + 0.123456789).floor(4).iso8601(6)  # => "1999-12-31T23:59:59.123400Z"

[SEE_ALSO] Time#ceil, Time#round