Ruby中的日期减法

时间:2012-07-26 20:22:19

标签: ruby-on-rails ruby datetime date

我的课程有两个参数:start_dateend_date

这些格式为 - 2012-07-12和2012-07-24。

我要从end_date中减去start_date

以前的谷歌搜索让我高高在上。我应该将这些转换成别的东西来做减法吗?

4 个答案:

答案 0 :(得分:7)

将它们转换为日期并减去它们:

require 'date'

start_date = Date.parse('2012-07-12')
end_date = Date.parse('2012-07-24')

(start_date - end_date).to_i

=> -12

答案 1 :(得分:0)

如果您希望(end_date-start_date).days天数工作正常。您可能会花费Rational天,在这种情况下,您可以使用to_i

答案 2 :(得分:0)

如果我没有被误导,则参数以String的形式出现,因此您必须将其转换为DateDateTimeTime才能执行与他们进行数学运算。
您可以参考此问题以获取更多详细信息 How can I find the number of days between two Date objects in Ruby?

答案 3 :(得分:0)

你可以减去两个DateTime对象使用1.9

require 'date'
DateTime.parse(end_date) - DateTime.parse(start_date)