我想查看从现在开始的特定日期的日期,所以我这样写了:
(Date.today + 2.days) - Date.today > 1.days
与我的想法相反,这会返回false
。
我发现了由不同类型的类引起的问题。
[13] pry(main)> (Date.today - Date.today)
=> (0/1)
[14] pry(main)> (Date.today - Date.today).class
=> Rational
但我不知道如何规避问题,有人知道如何添加或减去Date
课程吗?
答案 0 :(得分:0)
由于您想要添加天数,您可能只想:
▶ (Date.today + 2) - Date.today > 1
# ⇒ true
▶ (Date.today + 2).class
# ⇒ Date < Object
▶ Date.today + 2
# ⇒ #<Date: 2014-11-09 ((2456971j,0s,0n),+0s,2299161j)>
希望它有所帮助。
答案 1 :(得分:0)
针对您的特定问题,您可以
Date.today + 2 - Date.today > 1
答案 2 :(得分:0)
你的问题不明确。最大的错误是你试图比较不均匀的对象。
一方面,你有日期和持续时间对象(2.days),另一方面你有持续时间。这就像比较汽车和水果一样。
(Date.today + 2.days) - Date.today > 1.days
一种可能的解决方案是使用等式的algebric属性,允许您在等式的两边添加相同的值。
Date.today + 2.days > Date.today + 1.days
好处是你将比较两个同质对象。
2.1.1 :005 > Date.today + 2.days > Date.today + 1.days
=> true
您也可以使用相同的时间实例编写相同的表达式(与您正在进行的添加和减去相同的Date.today
非常接近)
time = Date.today
2.days.from_now(Date.time) > 1.days.from_now(time)