views:

47

answers:

1

I have 2 date ranges, start_date1..end_date1 and start_date2..end_date2, is there an easy "ruby" way to find all the dates that are in both ranges?

+2  A: 

You can use

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

here's a fully worked example:

require 'date'
require 'set'
((Date.today - 3)..(Date.today + 2)).to_set & (Date.today..(Date.today + 5)).to_set

if you're counting characters, you can also just do

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

but I think the original version is clearer.

Peter