ruby-on-rails - 如何反向循环遍历日期范围?

标签 ruby-on-rails ruby range date-range

我有一个日期范围,我希望能够反向循环。请提供以下内容,我将如何完成此操作,标准的 Range 运算符似乎无法正常工作。

>> sd = Date.parse('2010-03-01')
=> Mon, 01 Mar 2010
>> ed = Date.parse('2010-03-05')
=> Fri, 05 Mar 2010
>> (sd..ed).to_a
=> [Mon, 01 Mar 2010, Tue, 02 Mar 2010, Wed, 03 Mar 2010, Thu, 04 Mar 2010, Fri, 05 Mar     2010]
>> (ed..sd).to_a
=> []

如您所见,范围运算符从头到尾都能正常工作,但不能从头到尾正常工作。

最佳答案

尝试向上/向下:

irb(main):003:0> sd = Date.parse('2010-03-01')
=> #<Date: 4910513/2,0,2299161>
irb(main):004:0> ed = Date.parse('2010-03-15')
=> #<Date: 4910541/2,0,2299161>
irb(main):005:0> sd.upto(ed) { |date| puts date }
2010-03-01
2010-03-02
2010-03-03
2010-03-04
2010-03-05
2010-03-06
2010-03-07
2010-03-08
2010-03-09
2010-03-10
2010-03-11
2010-03-12
2010-03-13
2010-03-14
2010-03-15
=> #<Date: 4910513/2,0,2299161>
irb(main):006:0> ed.downto(sd) { |date| puts date }
2010-03-15
2010-03-14
2010-03-13
2010-03-12
2010-03-11
2010-03-10
2010-03-09
2010-03-08
2010-03-07
2010-03-06
2010-03-05
2010-03-04
2010-03-03
2010-03-02
2010-03-01
=> #<Date: 4910541/2,0,2299161>

关于ruby-on-rails - 如何反向循环遍历日期范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2836781/

相关文章:

algorithm - group-by 似乎改变了范围的顺序

ruby-on-rails - 人们是否将他们的 capistrano deploy.rb 和食谱提交给他们的私有(private) scm?

ruby-on-rails - 错误 - 无法加载 'guard/rspec' 或“”找到类 Guard::Rspec

html - Bootstrap - 导航栏不会在移动设备上关闭

javascript - 如何使用 JS/jQuery 验证两个下拉字段中的时间值?

arrays - 仅替换字符串中的第一个字符 | swift

iphone - 如何从视频中提取方向信息?

ruby - 使用整数作为散列键

ruby-on-rails - OS X 上的 RSpec 加载时间令人难以置信的长

ruby-on-rails - 运行 'rake assets:precompile' 产生错误 : '` @application. css' is not allowed as an instance variable name'