Oll*_*lly 2 ruby algorithm ruby-on-rails date
在我的应用程序中,我有各种日期序列,例如每周,每月和每年.鉴于过去的任意日期,我需要计算序列中的下一个未来日期.
目前我正在使用次优循环.这是一个简化的例子(在Ruby/Rails中):
def calculate_next_date(from_date)
next_date = from_date
while next_date < Date.today
next_date += 1.week # (or 1.month)
end
next_date
end
Run Code Online (Sandbox Code Playgroud)
而不是执行一个循环(虽然简单,但效率很低,特别是在远处给出一个日期时)我想通过计算两个日期之间的周数(或几个月,几年)来进行日期算术,计算余数并使用这些值生成下一个日期.
这是正确的方法,还是我错过了一种特别聪明的"Ruby"解决方法?或者我应该坚持我的循环以简化这一切?
Sim*_*tti 15
因为您将此问题标记为ruby-on-rails,我想您正在使用Rails.ActiveSupport引入了计算模块,该模块提供了一种有用的#advance方法.
date = Date.today
date.advance(:weeks => 1)
date.advance(:days => 7)
# => next week
Run Code Online (Sandbox Code Playgroud)