如何计算帐单年度的4周期限

时间:2019-03-27 10:58:33

标签: ruby

我正在重构应返回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。我尝试重新计算公式,但没有成功。我觉得这个公式太复杂了,可能可以更简单地实现。

1 个答案:

答案 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