ruby - 如何计算账单年度的 4 周期间
问题描述
我正在重构一个应该返回 4 周周期的方法。周期计算为当前计费年度中每 4 周一次的块数。每个帐单年度有 13 个期间。第一个计费年度开始于 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。我尝试重新计算公式,但没有成功。反正我觉得公式太复杂了,大概可以更简单的实现。
解决方案
我只会使用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
推荐阅读
- netty - Netty 代理服务器正在返回由对等方重置的连接
- c - 如何从要在 C 中的 printf 中使用的函数返回字符串?
- c# - 为什么索引器属性设置器没有内联?
- angular - Angular 测试 - 如何使用扩展基类测试数据服务
- wordpress - ACF 字段类型帖子对象仅显示来自自定义帖子类型的顶级父页面
- vba - Outlook 中电子邮件中的动态日期
- javascript - React - 输入类型文件 Semantic UI React
- r - 两个预测函数之间的区别
- apache-camel - 如果缺少任何依赖项,Apache Camel 会静默失败
- python - 如何平滑和绘制 x 与 y 的加权平均值,由 x 加权?