gpt4 book ai didi

ruby-on-rails - rails : Calculate how many days are overlapped between 2 date ranges

转载 作者:行者123 更新时间:2023-12-04 06:09:08 25 4
gpt4 key购买 nike

好的,假设我们有三个日期范围。

1. date1=01-20-2015..02-15-2015
2. date2 = 01-01-2015..01-31-2015
3. date3 = 02-01-2015..02-28-2015

我需要一种方法来计算日期 1 和日期 2 之间重叠了多少天(在本例中为 10 天)。date1 和 date3 之间有多少天重叠(在本例中为 15 天)?

有没有简单的方法来计算这个?

最佳答案

如果你有:

r1= (Date.new(2015, 01, 20))..(Date.new(2015, 2, 15))
r2= (Date.new(2015, 01, 1))..(Date.new(2015, 1, 31))

你可以这样检查路口:

r1.to_a & r2.to_a
=> [Tue, 20 Jan 2015,
Wed, 21 Jan 2015,
Thu, 22 Jan 2015,
Fri, 23 Jan 2015,
Sat, 24 Jan 2015,
Sun, 25 Jan 2015,
Mon, 26 Jan 2015,
Tue, 27 Jan 2015,
Wed, 28 Jan 2015,
Thu, 29 Jan 2015,
Fri, 30 Jan 2015,
Sat, 31 Jan 2015]

成本是将范围转换为数组

您会注意到 (r1.to_a & r2.to_a).count #=> 12,而不是 10,但这取决于您是否包括边界。

关于ruby-on-rails - rails : Calculate how many days are overlapped between 2 date ranges,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30317543/

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