【问题标题】:How Do I Find Common Dates in Two Ranges如何找到两个范围内的共同日期
【发布时间】:2010-05-26 23:24:08
【问题描述】:

我有 2 个日期范围,start_date1..end_date1start_date2..end_date2,有没有一种简单的“红宝石”方法可以找到两个范围内的所有日期?

【问题讨论】:

    标签: ruby-on-rails ruby range date-range


    【解决方案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
    

    但我认为原版更清晰。

    【讨论】:

    • 使用to_a 而不是to_set 会快一点,并且应该会产生相同的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多