2014-11-09 8 views
0

У меня есть 2 даты и разница между ними может быть более месяца. Я хочу найти разницу между ними в день. Однако b.days - a.days закрывает глаза на месяцы и, возможно, годы.Разница между 2 датами в днях

require 'date' 

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

b.day - a.day #=> 0 

Какой простой способ найти такую ​​разницу?

ответ

3

Просто вычесть одно из другого:

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

Причина вы получили 0 это b.day и a.day возвращает день месяца: 30. (30 - 30 = 0)

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

это работает нормально. но я хотел бы знать также, как итерации даты день ото дня в чистом рубине (не рельсы)? Просто 'a.days + 11 получает меня только до 30 или 31, а за ним он застревает. –

+0

@AlexanderSupertramp, вместо 'a.days + 11', попробуйте' a + 11'. Если вы хотите получить день месяца: '(a.day + 11) .day' – falsetru

Смежные вопросы