【发布时间】:2018-01-22 14:47:28
【问题描述】:
如果我有一个流程,我想在一个月中的特定日期运行。每个月计算周年纪念日的最佳方法是什么? 例如,如果我想在每个月的 30 日向某人收费。
我知道我可以安装一些 GEM,但这似乎有点矫枉过正。此外,Date#>> 方法仅适用于计算下个月。那之后的一个月呢?
我在下面发布了我的代码,这是我想出的最佳解决方案。
【问题讨论】:
-
考虑使用Date#>>。
-
@CarySwoveland Date#>> 方法仅适用于计算下个月。那之后的一个月呢?
-
如果
d是您的Date对象,则d >> 3是之后一个月内同一天的日期3(除了有时dom is > 28时)。您还可以从一个Date对象跳转到下一个对象:d = start_date; 12.times { <do something for value ofd>; d = d >> 1 }。 -
"计算每个月的周年纪念日" – 你的意思是什么?您想每月运行一次该方法还是希望该方法产生所有即将到来的日期?此外,您在该日期之前/之后/之后的输入和预期输出是什么?
标签: ruby-on-rails ruby