【发布时间】:2010-05-26 23:24:08
【问题描述】:
我有 2 个日期范围,start_date1..end_date1 和 start_date2..end_date2,有没有一种简单的“红宝石”方法可以找到两个范围内的所有日期?
【问题讨论】:
标签: ruby-on-rails ruby range date-range
我有 2 个日期范围,start_date1..end_date1 和 start_date2..end_date2,有没有一种简单的“红宝石”方法可以找到两个范围内的所有日期?
【问题讨论】:
标签: ruby-on-rails ruby range date-range
你可以使用
(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
但我认为原版更清晰。
【讨论】:
to_a 而不是to_set 会快一点,并且应该会产生相同的结果。