Ruby使用Date对象检查日期范围吗?

wqsoz72f  于 2022-10-15  发布在  Ruby
关注(0)|答案(1)|浏览(126)

我是新来Ruby的。我正在练习在假Airbnb上预订假期,但我想检查房间日期(Start_Date-End_Date)中是否有我想要的日期(假期开始日期至假期结束日期),但我似乎无法比较日期范围或将日期转换为范围。有没有更好的检查方法?谢谢

require 'date'

start_of_holiday = Date.parse("2022-10-02").strftime('%Y-%m-%d')
end_of_holiday = Date.parse("2022-10-05").strftime('%Y-%m-%d')

start_date = '2022-10-01'
end_date = '2022-10-11'

print true if (start_of_holiday..end_of_holiday).include?(start_date..end_date)
r3i60tvu

r3i60tvu1#

问题是您正在向include?传递一个范围,在本例中将返回FALSE,因为整个范围(start_date..end_date)不在(start_of_holiday..end_of_holiday)中。
来自文件;
包括?(Obj)→真或假
如果obj是该范围的元素,则返回True,否则返回False。
您只需调整它以检查start_of_holidayend_of_holiday

(start_date..end_date).cover?(start_of_holiday) && (start_date..end_date).cover?(end_of_holiday)

# true

相关问题