【问题标题】:Date subtraction in RubyRuby中的日期减法
【发布时间】:2012-07-26 20:22:18
【问题描述】:

我有一个有两个参数的类:start_dateend_date

它们的格式类似于 - 2012-07-12 和 2012-07-24。

我要从start_date 中减去end_date

以前的谷歌搜索让我兴奋不已。我应该将这些转换为其他东西来做减法吗?

【问题讨论】:

    标签: ruby-on-rails ruby datetime date


    【解决方案1】:

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

    require 'date'
    
    start_date = Date.parse('2012-07-12')
    end_date = Date.parse('2012-07-24')
    
    (start_date - end_date).to_i
    
    => -12
    

    【讨论】:

    • 非常感谢。我很感激!
    【解决方案2】:

    如果您想要(end_date-start_date).days 的天数应该可以正常工作。您可能会得到 Rational 天数,在这种情况下,您可以使用 to_i

    【讨论】:

      【解决方案3】:

      如果我不是 miskaten,参数以 String 的形式出现,因此您必须将其转换为 DateDateTimeTime 才能对它们进行数学运算。
      您可以参考这个问题了解更多详情。
      How can I find the number of days between two Date objects in Ruby?

      【讨论】:

        【解决方案4】:

        你可以只减去两个 DateTime 对象

        使用 1.9

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

        【讨论】:

          猜你喜欢
          • 2018-12-21
          • 2015-09-06
          • 2011-05-09
          • 2011-07-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多