Ruby 两个日期间隔的交集
我有四个约会: 前两个是一个月的开始和结束Ruby 两个日期间隔的交集,ruby,date,Ruby,Date,我有四个约会: 前两个是一个月的开始和结束 start_m = Time.new(2010,1).beginning_of_month end_m = Time.new(2010,1).end_of_month 最后两个是d1和d2,分别是d1end\m和d1->d2 例如: start_m = 2011-01-01 end_m = 2011-01-31 d1 = 2010-12-20 d2 = 2011-01-11 结果将是 [1,2,3 ... 11] 有没有一个简单的方法来完成这个交
start_m = Time.new(2010,1).beginning_of_month
end_m = Time.new(2010,1).end_of_month
最后两个是d1
和d2
,分别是d1end\m
和d1
->d2
例如:
start_m = 2011-01-01
end_m = 2011-01-31
d1 = 2010-12-20
d2 = 2011-01-11
结果将是
[1,2,3 ... 11]
有没有一个简单的方法来完成这个交叉口
require 'date'
start_m = Date.parse('2011-01-01')
end_m = Date.parse('2011-01-31')
d1 = Date.parse('2010-12-20')
d2 = Date.parse('2011-01-11')
puts (start_m..end_m).to_a & (d1..d2).to_a
有关详细信息,请参阅文档。输出:
2011-01-01
2011-01-02
2011-01-03
2011-01-04
2011-01-05
2011-01-06
2011-01-07
2011-01-08
2011-01-09
2011-01-10
2011-01-11
有关详细信息,请参阅文档。输出:
2011-01-01
2011-01-02
2011-01-03
2011-01-04
2011-01-05
2011-01-06
2011-01-07
2011-01-08
2011-01-09
2011-01-10
2011-01-11
我的方法是使用ruby中的range.step函数,使用(开始到结束到)。步骤(60*60*24)。到a
然后需要使用Time.at(element.day
对这两个数组执行此操作时,您可以执行array1&array2
,这将为您提供所需的结果
这只是一个建议,也许有更好的方法 我的方法是使用ruby中的range.step函数,使用(开始到结束到结束)。步骤(60*60*24)。到a
然后需要使用Time.at(element.day
对这两个数组执行此操作时,您可以执行array1&array2
,这将为您提供所需的结果
这只是一个建议,也许有更好的方法