Rules! Не получается вычислить интервал времени

Главные вкладки

Аватар пользователя lipinart lipinart 8 мая 2015 в 10:53

Товарищи, выручайте!

У ноды есть поле Срок публикации (не публиковать, 1 неделя, 2 недели, 3 недели или 4 недели)
Такса: 50 поинтов / неделя. И дополнительное скрытое поле, куда я пишу дату снятия (запланированную)

1. Юзер создал ноду, выбрал срок (к примеру, 3 недели) и сохранил.
Тут все просто. Расчитываем дату снятия с паблика, расчитываем стиимость 3х50 и списываем с баланса (если баланс позволяет).

2. Через два дня юзер решил изменить срок публикации (может вообще отказаться, продлить или уменьшить срок)
И тут засада!
Имеем дату снятия (запланированную) и интервал времени (который выбрал юзер) относительно текущей даты.
Нужно рассчитать количество поинтов, которые нужно вернуть за то время, которое нода была в паблике и повторить все операции за исключением случая полного отказа, тут возвращаем и снимаем с паблика.

Еще есть условие, считать только в неделях (кол-во дней должно быть округлено до недели в большую сторону).

В рулс даты можно только складывать или вычитать, а как вычислить инревал и потом разделить его на 7 дней я так и не нашел.

Комментарии

Аватар пользователя lipinart lipinart 2 июня 2015 в 11:38

Вся задача сводится к тому, что нужно получить число (целое) - количество недель вперед (положительное) и назад (отрицательное).