Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Каждый 4-й месяц (30 дней после 90)
 
 автор: Sywooch   (15.11.2016 в 14:17)   письмо автору
 
 

Здравствуйте!
Голову сломал, выдумывая логику функции способной понимать каждый четвертый месяц с произвольной даты.
Месяц = 30 дней.

Задача: скидка -50% на каждый четвертый месяц аренды. Реально на каждые 30 дней после 90 дней
Аренда может быть много лет, не циклом же переберать для каждого клиента.

Быть может есть красивое решение?

Спасибо

  Ответить  
 
 автор: confirm   (15.11.2016 в 15:16)   письмо автору
 
   для: Sywooch   (15.11.2016 в 14:17)
 

Делить номер месяца по модулю 4 проблема?

  Ответить  
 
 автор: Sywooch   (15.11.2016 в 16:00)   письмо автору
 
   для: confirm   (15.11.2016 в 15:16)
 

Спасибо за ответ!

Номер месяца к календарю привязан!

А мне надо старт с любой даты, где месяц условный, равен 30 дням.

То есть 90 дней = 3 месяца.. return false;
91 уже четвертый и до 120... return true;
с 121 return false;

Дней может быть 100500+

Вот мне и любопытно как максимально красиво и грамотно это реализовать.

Имеете ввиду ( ($day/30)%4) ?

  Ответить  
 
 автор: confirm   (15.11.2016 в 16:39)   письмо автору
 
   для: Sywooch   (15.11.2016 в 16:00)
 

Ну если вас интересуют не действительные месяца, а период по 30 календарных дней, можно и так.

Номер месяца всегда будет привязан к календарю, ибо стартовалась же когда-то эта приблуда, и стартовалась то она по календарю. Что мешает от даты старта отнимать текущую дату, а из полученного уже узнать период?

У вас проблема создана на ровном месте.

  Ответить  
 
 автор: Sywooch   (15.11.2016 в 16:48)   письмо автору
 
   для: confirm   (15.11.2016 в 16:39)
 

Я с вами согласен, на ровном месте!
Как и любая из проблем.

Это надо и в калькулятор на angular добавить.

Вот так работает:
<?php 
$day 
100500;
$manth ceil($day/30);
if(((
$manth 4) == 4) || (($manth 4) == 0)) {
echo 
'true';    
    }    
    else {    
echo 
'false';    
    }
?>

Не уверен, что лучшее решение, но как костыль пока пусть повисит.
Спасибо

  Ответить  
 
 автор: confirm   (16.11.2016 в 05:09)   письмо автору
 
   для: Sywooch   (15.11.2016 в 16:48)
 

Вот это что такое - ($math % 4) == 4?

if(!($math % 4)) ... это и есть кратно 4, и есть false, в остальных случаях true.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования