我有四个日期:
前两个是一个月的开始和结束
start_m = Time.new(2010,1).beginning_of_month
end_m = Time.new(2010,1).end_of_month
Run Code Online (Sandbox Code Playgroud)
和最后两个,d1并且d2,与d1 <= d2
我想要的是一个包含来自start_m- > end_m和d1- > 交集的日期数字的数组d2
例如:
start_m = 2011-01-01
end_m = 2011-01-31
d1 = 2010-12-20
d2 = 2011-01-11
Run Code Online (Sandbox Code Playgroud)
结果将是
[1,2,3 ... 11]
Run Code Online (Sandbox Code Playgroud)
有一个简单的方法来做这个交集吗?
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
Run Code Online (Sandbox Code Playgroud)
请参阅Array#&的文档.输出:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1929 次 |
| 最近记录: |