Как мне найти общие даты в двух диапазонах

У меня есть 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

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

Другие вопросы по тегам