gpt4 book ai didi

ruby - 检查 ruby 中的两个范围是否重叠

转载 作者:数据小太阳 更新时间:2023-10-29 07:09:44 25 4
gpt4 key购买 nike

我知道我能做到:

(1..30).cover?(2)
=> true

但是当我尝试对另一个范围执行相同操作时,它总是返回 false:

(1..30).cover?(2..3)
=> false

所以我的问题是 - 是否有任何优雅的方法来比较 ruby​​ 中的两个范围?在我的例子中,我想检查两个日期时间范围是否重叠。提前致谢。

最佳答案

给定范围 A 的两个范围重叠,当:

  1. 范围 B 从范围 A 开始,
  2. 范围 B 在范围 A 内结束或
  3. 范围 B 在范围 A 之前开始,在范围 A 之后结束

例子:

Range A    |-----|
|-----| Case 1
|-----| Case 2
|-| Case 1 + 2
|---------| Case 3

仔细观察规则是:当范围 B 在范围 A 结束之前开始并且范围 B 在范围 A 开始之后结束时,两个范围重叠。

def ranges_overlap?(range_a, range_b)
range_b.begin <= range_a.end && range_a.begin <= range_b.end
end

关于ruby - 检查 ruby 中的两个范围是否重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39934266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com