Как проверить, что указанная дата в течение 365 дней? - PullRequest
1 голос
/ 18 ноября 2011

Rails вопрос новичка:

С учетом даты и времени из БД в формате 2012-02-12 23:59:30, как я могу проверить, что это через 365 дней?

Я попробовал следующее, но не сработало: <%= expedite - Date.today %>

Ответы [ 4 ]

5 голосов
/ 18 ноября 2011

Вы можете добавить количество дней к Date.today и посмотреть, будет ли эта дата или раньше:

if expedite <= (Date.today + 365.days)
  # it's within 365 days
end

Вместо этого вы также можете сделать Date.today + 1.year, но это технически добавит 365,25 дней.не 365.

2 голосов
/ 18 ноября 2011

Предполагая, что вы имеете в виду «1 год» на 365 дней, поскольку проверка на 365 дней не учитывает високосные годы:

if expedite <= 1.year.from_now
  # ...
else
  # ...
end
0 голосов
/ 18 ноября 2011

Добавление 365 или 365,25 дней к дате может оказаться не тем, что вам нужно. В високосные годы:

require 'date'
start = Date.new(2012,2,1)
puts start + 365 #=> 2013-01-31

# Human "one year from now":
puts start >> 12  #=> 2013-02-01
0 голосов
/ 18 ноября 2011

Это решение учитывает даты больше, чем год назад.

if (Date.today-365..Date.today+365).include? expedite
  # it's really within 365 days
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...