настоящее время у меня это меньше, чем идеальное решение:Элегантный способ рассчитать количество лет между двумя датами в рельсах?
def years_between_dates(date_from, date_to)
((date_to.to_time - date_from.to_time)/1.year.seconds).floor
end
Расчет не должен быть точным (ж/високосных лет и т.д.), но должны быть достаточно точными и учитывать месяцев. 3,8 года должны вернуться на 3 года, следовательно, floor
.
Я преобразовываю to_time
на счет обоих Date
, Time
и DateTime
.
Я не могу не думать, что есть более лаконичный способ сделать это.
Для начала вы можете избавиться от '.to_i' и '.to_f'. Они не нужны. – ptd
http://stackoverflow.com/questions/1904097/how-to-calculate-how-many-years-passed-since-a-given-date-in-ruby –
@ptd почему мне не нужно 'to_f'? Насколько я понимаю, разделение двух целых чисел вернет округленное число? –