Существует модель блога, которая имеет creation_date
, input_frequency
и input_limit
. Частота ввода может быть каждый день, неделя, месяц (игнорировать количество дней в месяце, но сбрасывать в день месяца, следующего за месяцем) или год (игнорировать количество дней в году, но сбрасывать в тот же день, следующий год). В течение заданного периода, определяемого input_frequency
и creation_date
, пользователю разрешено публиковать до набора input_limit
.
Например, в блоге указано creation_date
6 января с input_frequency
ежемесячно и input_limit
из 4.
Я хотел бы знать 3 вещи относительно сегодняшней даты (скажем, это 10 июня):
- Что такое начало и дата окончания моего текущего интервала? (Пример ответа: с 6 июня по 6 июля)
- Сколько еще дней осталось до сброса моего предела ввода? (26 дней)
- Сколько постов было сделано за текущий интервал (на которые я могу легко ответить после того, как получу # 1
Posts.where(created_at: start_interval..end_interval)
).
Стратегия между днями интервал недели, месяца и года может быть иным.
Например, с недельным интервалом было бы сложнее рассчитать интервал, так как мне нужно было бы рассчитать количество дней сегодня, начиная с creation_date
, и делать по модулю и вычитать это по модулю из текущего дня в определите start_interval и добавьте 7 к нему, чтобы определить end_interval - есть ли какая-нибудь библиотека, которая делает все, что я хочу, или мне нужно самому выполнить все вычисления?