我目前在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
对此的任何帮助将不胜感激:)
答案 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)