【发布时间】:2020-07-11 15:15:47
【问题描述】:
存在一个博客模型,它具有 creation_date、input_frequency 和 input_limit。输入频率可以是每天、每周、每月(忽略当月的天数,但在下个月的当天重置)或年(忽略一年中的天数,但在下个月的同一天重置)年)。在由input_frequency 和creation_date 确定的给定时间段内,用户最多可以发帖到集合input_limit。
例如,说博客有 creation_date 1 月 6 日,input_frequency 是每月一次,input_limit 是 4 次。
我想知道与今天日期相关的 3 件事(假设是 6 月 10 日):
- 我当前间隔的开始日期和结束日期是什么时候? (答案示例:6 月 6 日至 7 月 6 日)
- 我的输入限制重置还剩多少天? (26 天)
- 在当前区间内发了多少帖子(得到#1
Posts.where(created_at: start_interval..end_interval)后我可以轻松回答)。
日、周、月和年间隔之间的策略似乎必须有所不同。
例如,对于每周间隔,计算间隔似乎更难,因为我必须从creation_date 计算今天的天数,然后做模数并从当天减去该模数以确定 start_interval并在其中添加 7 以确定 end_interval - 是否有任何库可以做我想做的所有事情,还是我必须自己提出所有计算?
【问题讨论】:
-
7.days.ago、7.days.from_now、Date.today.beginning_of_week等方法对你有用吗?
标签: sql ruby-on-rails