Цель
Я пытаюсь рассчитать расстояние в неделях с заданной даты, не прыгая через обручи. Я бы предпочел сделать это на простом Ruby, но ActiveSupport, безусловно, является приемлемой альтернативой.
Мой код
Я написал следующее, которое, похоже, работает, но мне кажется, что это долгий путь.
require 'date'
DAYS_IN_WEEK = 7.0
def weeks_since date_string
date = Date.parse date_string
days = Date.today - date
weeks = days / DAYS_IN_WEEK
weeks.round 2
end
weeks_since '2015-06-15'
#=> 32.57
#weeks_since ActiveSupport принимает в качестве аргумента количество недель, поэтому он не не подходит для этого варианта использования. Рубиновый класс Date, похоже, также не имеет ничего важного. .
Альтернативы?
Есть ли лучшее встроенное решение или известный алгоритм для расчета количества недель, разделяющих пару дат? Я не пытаюсь играть в гольф с кодом, поскольку читабельность превосходит краткость, а просто пытаюсь узнать, поддерживает ли Ruby изначально тот тип арифметики дат, который я закодировал вручную.
(t2 - t1) / 604800
. Что(60 * 60 * 24 * 7)
= 1 неделя в секундах. в противном случае ваше решение также будет делать то же самое. - person engineersmnky   schedule 29.01.2016