0

在我的 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
4

2 回答 2

3

您的伪代码几乎拥有它,您可以使用以下代码编写以下内容#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
于 2013-08-22T17:46:35.293 回答
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
于 2013-08-22T18:56:50.317 回答