0

c 应该是 2 个周期的内部周期。如何以最优雅的方式获得它?

a1=Date.current
a2=Date.current + 2.months

b1=Date.current + 1.month
b2=Date.current + 3.months

c=???

c.should_be [Date.current + 1.month, Date.current + 2.months]
4

2 回答 2

2

赶紧实施:

xs = (a1..a2).to_a & (b1..b2).to_a
(xs.first..xs.last)
# => Sun, 24 Jun 2012..Tue, 24 Jul 2012

日期范围没有什么特别之处。因此,搜索“范围交点”以更有效地执行此操作(例如此处)。现在你可以写:

(a1..a2) & (b1..b2)
于 2012-05-24T08:14:18.053 回答
0
d= [a1, a2, b1, b2]
[*1..d.length/ 2].map do |dt| 
    d.shift(2) 
end.map do |dx| 
    Date.current+ (dx[1]- dx[0]) 
end

[2012 年 6 月 24 日星期日,2012 年 7 月 24 日星期二]

于 2012-05-24T08:23:58.287 回答