如何在两个范围内找到常见日期

时间:2010-05-26 23:24:09

标签: ruby-on-rails ruby range date-range

我有两个日期范围,start_date1..end_date1start_date2..end_date2,是否有一种简单的“红宝石”方式来查找两个范围内的所有日期?

1 个答案:

答案 0 :(得分:3)

您可以使用

(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

但我认为原始版本更清晰。