Несколько месяцев назад в рубине - PullRequest
7 голосов
/ 04 октября 2010

Я не могу найти способ (используя определения классов) получить месяцы назад.Секунды, дни и минуты все в порядке, потому что они всегда постоянны.Однако, поскольку месяцы не всегда постоянны, мне нужно знать, как рубин знает, сколько дней в текущем месяце.

Ответы [ 3 ]

7 голосов
/ 04 октября 2010

Если ваше приложение использует ActiveSupport (например, приложение Rails), вы можете использовать

3.months.ago

, чтобы получить текущую дату менее 3 месяцев.

0 голосов
/ 04 октября 2010

Если вам нужно узнать, сколько дней было между двумя датами, скажем, сегодня и тем же номером дня прошлого месяца, вы можете сделать это:

(Date.today - Date.today.prev_month).to_i

Это даст вам числодней в предыдущем месяце.Если вы хотите узнать количество дней в текущем месяце, вы можете вместо этого:

(Date.today.next_month - Date.today).to_i
0 голосов
/ 04 октября 2010

Это то, что вы ищете? DaysIn (MonthNum)

РЕДАКТИРОВАТЬ 2019-01-20 (для исторических целей)

В комментариях сообщалось, что ссылка не работает. Благодаря Интернет-архиву , вот оригинальная статья.

Предполагаемый блок кода:

def DaysIn(MonthNum)
   (Date.new(Time.now.year,12,31).to_date<<(12-MonthNum)).day
end

Однако, как указал другой читатель, похоже, что желаемое содержание было, вероятно, месяцами назад , а не числом дней в месяце.

Этот вопрос ответил на последнюю часть вопроса: «Мне нужно знать, как рубин узнает , сколько дней в текущем месяце ».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...