Tue, 01 Jan 2013 date_now = Date.today #=>-6ren">
gpt4 book ai didi

ruby - 为什么日期之间的减法会返回 Rational 类型?

转载 作者:数据小太阳 更新时间:2023-10-29 06:53:39 25 4
gpt4 key购买 nike

我正在尝试对日期执行减法运算。

date_sent = Date.parse("2013-01-01") #=> Tue, 01 Jan 2013
date_now = Date.today #=> Wed, 04 Sep 2013
days = (date_now - date_sent) #=> (246/1)

为什么 date_now - date_sent 返回一个 Rational 类型?

最佳答案

这是预期的行为。来自docs :

d - other → date or rational

Date.new(2001,2,3) - 1               #=> #<Date: 2001-02-02 ...>
Date.new(2001,2,3) - Date.new(2001) #=> (33/1)

使用有理类型是因为它可以准确表达差异:

diff = DateTime.new(2001,2,3) - DateTime.new(2001,2,2,1)
#=> (23/24)

而 float 不能:

diff.to_f
#=> 0.9583333333333334

关于ruby - 为什么日期之间的减法会返回 Rational 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18606410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com