Как мне найти общие даты в двух диапазонах
У меня есть 2 диапазона дат, start_date1..end_date1
а также start_date2..end_date2
Есть ли простой "рубиновый" способ найти все даты в обоих диапазонах?
1 ответ
Решение
Ты можешь использовать
(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
но я думаю, что оригинальная версия более понятна.