Я хочу взять список datetimes в Ruby, а затем рассчитать количество дней между их, а затем в среднем эти даты. Это верно? Есть ли более короткий способ сделать это?Рассчитать среднее количество дней между датами в Ruby
dates = ["2012-08-05 00:00:00 UTC", "2012-06-17 00:00:00 UTC", "2012-06-15 00:00:00 UTC", "2011-06-06 00:00:00 UTC"]
difference = Array.new
dates.each_with_index do |date, index|
if index != 0
difference << date.to_date - dates[index - 1].to_date
end
end
avg = difference.inject{ |sum, el| sum + el }.to_f/arr.size
И будет ли это выводить его в формате дней?
Вы также можете указать мне версию Rails, если хотите, поскольку я буду тянуть время от поля модели.
Ваш вопрос будет лучше, если в массиве «даты» содержатся фактические даты в общем формате. Наверное, трех будет достаточно. Например: 'date = [" 21 ноября 2013 "," 22 декабря 2013 года "," 20 января 2014 года "]' Затем покажите вывод, который вы получите для этой даты. Это также позволит читателям проверить код, который они могут предложить. –
Хорошо спасибо. Я добавил некоторые даты. – user2270029
Вы также можете использовать замечательную функцию 'Time.parse()' Ruby's! Обычно это может выяснить, как автоматически преобразовать строку в объект 'Time'. – TrinitronX