У меня есть следующий выбор:Рассчитать количество дней в диапазоне времени?
range = Time.now-1.month..Time.now
Как рассчитать количество дней в этом диапазоне?
Я бегу Ruby 2.0.0.
У меня есть следующий выбор:Рассчитать количество дней в диапазоне времени?
range = Time.now-1.month..Time.now
Как рассчитать количество дней в этом диапазоне?
Я бегу Ruby 2.0.0.
range = Time.now .. Time.now-1.month
=> 2013-12-13 15:35:57 -0500..2013-11-13 15:35:57 -0500
((range.first - range.last)/1.day).ceil
=> 30
#<<
метод Дата вычитает месяц (# >> добавляет один). Вычитание дат приводит к дням.
require 'date'
p (Date.today - (Date.today << 1)).to_i #=> 30
#so:
range = Time.now-1.month..Time.now
p p (range.last.to_date - range.first.to_date).to_i #=>30
1.month
will always be 30 days, поэтому ваш диапазон всегда будет диапазон 30 дней. Если вы хотите узнать количество дней в этом месяце, так как вы уже ActiveSupport доступны, вы можете просто использовать Time#days_in_month
:
Time.days_in_month(Time.now.month, Time.now.year)
# => 31
Time.days_in_month(Time.now.month - 1, Time.now.year)
# => 30
Причина для downvote? ActiveSupport буквально определяет Integer # month как 30-дневную продолжительность. –
ли Rails код? –
Errr, я думаю. Не осознавали, что это были специфические для Rails методы. – Shpigford
'1.month' я думаю, что код rails –