2014-11-09 117 views
0

我有2个日期,它们之间的差异可能超过一个月。我想在白天找到他们之间的差异。然而,b.days - a.days对几个月以及可能多年来都视而不见。2天之间的差异

require 'date' 

a = Date.parse("20141030") 
b = Date.parse("20141230") 

b.day - a.day #=> 0 

找到这样的区别有哪些更简单的方法?

回答

3

只是减去从另一个之一:30

(b - a) 
# => (61/1) 
(b - a).to_i 
# => 61 

你得到了0b.daya.day回报月份的一天的原因。 (30 - 30 = 0)

b.day 
# => 30 
a.day 
# => 30 
+0

这工作正常。但我想知道如何在纯ruby(而不是rails)中每天迭代一个日期?只是'a.days + 11只能让我30到31岁,并且超越了它。 – 2014-11-09 10:48:46

+0

@AlexanderSupertramp,不是'a.days + 11',而是尝试'a + 11'。如果你想得到一个月的日子:'(a.day + 11).day' – falsetru 2014-11-09 10:49:56