Ruby on rails 如何在两个范围内查找常见日期

Ruby on rails 如何在两个范围内查找常见日期,ruby-on-rails,ruby,range,date-range,Ruby On Rails,Ruby,Range,Date Range,我有两个日期范围,start\u date1..end\u date1和start\u date2..end\u date2,是否有一种简单的“ruby”方法可以找到两个范围内的所有日期?您可以使用 (start_date1..end_date1).to_set & (start_date2..end_date2).to_set 下面是一个充分发挥作用的示例: require 'date' require 'set' ((Date.today - 3)..(Date.today + 2

我有两个日期范围,
start\u date1..end\u date1
start\u date2..end\u date2
,是否有一种简单的“ruby”方法可以找到两个范围内的所有日期?

您可以使用

(start_date1..end_date1).to_set & (start_date2..end_date2).to_set
下面是一个充分发挥作用的示例:

require 'date'
require 'set'
((Date.today - 3)..(Date.today + 2)).to_set & (Date.today..(Date.today + 5)).to_set
如果你在数字符,你也可以这样做

(start_date1..end_date1).to_set & start_date2..end_date2

但是我认为原来的版本更清晰。

使用
到a
而不是
到set
会更快一些,并且应该会产生相同的结果。