我正在尝试对日期执行减法运算。
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
type?
这是预期的行为。来自docs http://ruby-doc.org/stdlib-2.0.0/libdoc/date/rdoc/Date.html#method-i-2D:
d - 其他 → 日期或理性
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)
而浮动则不能:
diff.to_f
#=> 0.9583333333333334
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)