如何在Rails中指定日期范围?

时间:2013-08-22 17:30:56

标签: ruby-on-rails ruby

在我的Rails 3.2应用程序中,我需要创建一个if条件来检查今天日期的日期范围。具体如下:

current_date = Date.today

# if current_date is between 2013-08-01..2013-08-15
#   return 1
# elsif current_date is between 2013-08-16..2013-08-30
#   return 2
# end

2 个答案:

答案 0 :(得分:2)

您的伪代码几乎拥有它,您可以使用#cover编写以下内容:

def date_range(date)
  if (Date.new(2013, 8, 1) .. Date.new(2013, 8, 15)).cover?(date)
    1
  elsif (Date.new(2013, 8, 16) .. Date.new(2013, 8, 30)).cover?(date)
    2
  end
end

答案 1 :(得分:0)

您可以使用Comparable#between?

if current_date.between? Date.new(2013, 8, 1), Date.new(2013, 8, 15)
  1
elsif current_date.between? Date.new(2013, 8, 16), Date.new(2013, 8, 30)
  2
end

或日期范围:(请参阅Range#===

case current_date
when Date.new(2013, 8, 1)..Date.new(2013, 8, 15)
  1
when Date.new(2013, 8, 16)..Date.new(2013, 8, 30)
  2
end