Как мне найти общие даты в двух диапазонах - PullRequest
2 голосов
/ 27 мая 2010

У меня есть 2 диапазона дат, start_date1..end_date1 и start_date2..end_date2, есть ли простой "рубиновый" способ найти все даты в обоих диапазонах?

1 Ответ

3 голосов
/ 27 мая 2010

Вы можете использовать

(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

но я думаю, что оригинальная версия более понятна.

...