我正在重构应返回4周周期的方法。期间计算为当前计费年度中每4周一次的块数。每个计费年度有十三个期间。第一个结算年始于2008年8月24日。
我创建了一个公式:
def period
period = (((self.utc.to_time - Time.new(2008,8,23,0,0,0,0)) / 60 / 60 / 24 / 7 / 52).modulo(1) * 13).ceil
period == 0 ? 13 : period
end
多年来,它变得不准确,现在我们看到了整个时期的变化:时期1的预订显示为时期2。我尝试重新计算公式,但没有成功。我觉得这个公式太复杂了,可能可以更简单地实现。
答案 0 :(得分:0)
我只使用Date
而不是Time
,计算会容易得多。
DAYS_PER_PERIOD = 28
def period
days = Date.today - Date.new(2008, 8, 23)
periods = days / DAYS_PER_PERIOD
periods.to_i # would return a `Rational` instead of an `Integer` otherwise
end