如何确定rails中的当前日期是否在预定义的日期范围之间(没有年份)

时间:2016-11-14 14:31:20

标签: ruby-on-rails ruby

我目前在rails中的帮助器中有以下代码,这允许我设置开始日期和结束日期,并根据当前日期是否在预定义范围之间返回true。我的问题是这个代码它只适用于当年,但是我想改变它,所以如果日期在范围内,它将返回true,忽略年份。

def is_christmas?
  start_date = Date.parse('01-12-2016')
  end_date = Date.parse('25-12-2016')
  today = Date.today
  today.between?(start_date, end_date)
end

对此的任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:5)

  

不确定如何消除年份,只检查日/月

检查day

date.day.between?(1, 25)

检查month

date.month == 12

并检查两者:

date.month == 12 && date.day.between?(1, 25)

包装方法:

def is_christmas?(date = Date.today)
  date.month == 12 && date.day.between?(1, 25)
end

答案 1 :(得分:0)

如果日期范围始终在同一个月内,您可以将日期的day元素转换为整数,并检查它是否在范围内,例如

(start_day.day..end_date.day).include?(today.day)