ddv88
@ddv88
Binance Futures

Сложение отрицательных значений?

Не понимаю в чем проблема.
Дано:
Есть тарифы с фиксированной ценой.
Есть возможность менять тариф.
Вопрос:
При пересчете стоимости по какой то причине каждый раз увеличивается баланс, хотя оба прайса (старый и новый каждый раз один и тот же).

Упрощенный варинт привожу ниже.

$balance = 1000;
$oldTariff = 50;
$newTariff = 30;
//Получаем количество месяцев в текущем месяце.
$currMonthDays = cal_days_in_month(CAL_GREGORIAN, date("m"), date("Y"));
//Рассчитываем стоимость одного дня по тарифу
$dayPrice = $oldTariff / $currMonthDays;
//Вычисляем количество оставшихся дней до конца оплаты тарифа
$daysLeft = date("d", strtotime(2018-12-10 10:00:00) - strtotime(date("Y-m-d H:i:s")));
//Оставшиеся дни в пересчете на стоимость
$leftPrice = number_format($daysLeft * $dayPrice, 2);
//Вычитаем разницу стоимости тарифов
$newPrice = $newTariff - $leftPrice;
$balance += $newPrice;
print $balance;


Что не так? Поможите чем сможите.
Я так понимаю что, что то не так с количеством дней.
Хотя нет, что то с обновлением мускула не то.
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ответы на вопрос 1
Minifets
@Minifets
Hello world!!!
Если я правильно понял, то у вас скорее всего тут ошибка (забыли на daysLeft умножить):

$newPrice = $newTariff * $daysLeft / $currMonthDays - $leftPrice;


Так будет более читаемо
$balance = 1000;
$oldTariff = 50;
$newTariff = 30;
//Получаем количество месяцев в текущем месяце.
$currMonthDays = cal_days_in_month(CAL_GREGORIAN, date("m"), date("Y"));

//Рассчитываем стоимость одного дня по тарифу
$oldDayPrice = $oldTariff / $currMonthDays;
$newDayPrice = $newTariff / $currMonthDays;

//Вычисляем количество оставшихся дней до конца оплаты тарифа
$daysLeft = ceil((strtotime('2018-12-10 10:00:00') - strtotime(date("Y-m-d H:i:s"))) / (24 * 60 * 60));

//Дни в пересчете на стоимость
$oldPrice = number_format($daysLeft * $oldDayPrice, 2);
$newPrice = number_format($daysLeft * $newDayPrice, 2);

//Вычитаем разницу стоимости тарифов
$diff = $oldPrice - $newPrice;

$balance += $diff;
print $balance;

Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы