231 / 12 / 3
Регистрация: 28.12.2012
Сообщений: 192
1

Расчёт кредита на PHP

12.11.2014, 12:45. Показов 4963. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите с методом расчёта кредита на PHP. Сам написал несколько, но они выдают неправильные данные:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class Calc {
    /**
     * расчет аннуитетного кредита
     * @iCreditSum - сумма кредита
     * @i – процентная ставка по займу в месяц.
     * @n – количество месяцев, в которые платится ипотека.
     * @iAnnualRate - годовая ставка
     * @return сумма выплат в месяц
     */
    public function calculateAnnuityPayment($iCreditSum, $i, $n, $iAnnualRate = null) {
        if (isset($iAnnualRate) && !empty($iAnnualRate)) {
            $i = $iAnnualRate / 12;
        }
        return $iCreditSum * (($i * pow((1 + $i), $n)) / (pow((1 + $i), $n) - 1)); //Формула для расчета аннуитетных платежей
    }
    /**
     * @S - сумма кредита
     * @p - 1/12 годовой процентной ставки по кредиту, которая исходя из формулы выражается в сотых долях
     * @m - срок выплат по кредиту в месяцах.
     * @return сумма ежемесячных выплат по кредиту
     */
    public function calculateAnnuityPayment1($S, $p, $m) {
        //$p = $p / 12;
        //return $S * $p / (1 - (1 + $p) * 1 - $m);
        return ($S * $p) / ((1 - ((1 + $p) * 1)) - $m);
    }
    /**
     * @S — сумма кредита,
     * @p — процентная ставка в месяц,
     * @n — количество месяцев погашения кредита.
     * @return Ежемесячный платеж
     */
    public function calculateAnnuityPayment2($S, $p, $n) {
        $oNewMath = new NewMath();
        return $S * $p / (1 - pow((1 + $p), $oNewMath->neg1($n)));
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2014, 12:45
Ответы с готовыми решениями:

Расчет кредита
Помогите написать программу расчета кредита. надо сделать по аналогии с вот этим: Ежемесячный...

Расчет кредита
Как рассчитать Сумму кредита в начале месяца? И почему у меня остаток кредита -0,00?

Расчет кредита на определенную дату
Доброго времени суток,форумчане! :yahoo: Подскажите, позволяет ли MS Access осуществлять операции...

Расчет срока погашения кредита
Добрый день,уважаемые. есть проблема с кодом..программка должна рассчитывать оставшиеся месяцы до...

7
177 / 125 / 28
Регистрация: 30.10.2013
Сообщений: 686
12.11.2014, 15:21 2
шикарный вопрос блин )) тестируйте ваш класс, придумайте данные, посчитайте сами и отдавайте классу, и проверяйте ответы

Добавлено через 29 секунд
и убейте ваш короткие названия переменных, назовите их нормально
0
231 / 12 / 3
Регистрация: 28.12.2012
Сообщений: 192
12.11.2014, 21:09  [ТС] 3
протестировал уже, результаты неправильные, походу дело в формулах, уже всё попробовал
0
177 / 125 / 28
Регистрация: 30.10.2013
Сообщений: 686
13.11.2014, 10:37 4
И что вы все пробовали, вы проверяли более мелкими шажками? Вы сами проделывали такие расчеты? Проделайте расчет которые нужно и программу пошагово разбирайте и найдете ошибку
0
33 / 33 / 9
Регистрация: 26.07.2013
Сообщений: 148
13.11.2014, 17:46 5
Тебе нужна формула расчета кредите или реализация этой формулы? Если формула то мне кажется это не тот раздел, куда следовало бы обращаться за формулой.
0
231 / 12 / 3
Регистрация: 28.12.2012
Сообщений: 192
14.11.2014, 02:32  [ТС] 6
мне желательно и формулу и её реализацию

Добавлено через 1 минуту
я бы сделал расчёт если бы знал формулу, а так у меня есть лишь начальные данные и ответы для них
0
177 / 125 / 28
Регистрация: 30.10.2013
Сообщений: 686
14.11.2014, 15:52 7
тогда вам нужно сначала узнать ту формулу, которая вас приведет от начальных данных к конечным, а потом превратить сию формулу в код
0
461 / 461 / 6
Регистрация: 08.05.2013
Сообщений: 239
02.11.2020, 06:40 8
Формула с капитализаций процентов по вкладу:
1 summn = summn-1 + (summn-1 + summadd)daysn(percent / daysy)
2 где summn – сумма на счете на месяц n (руб),
3 summn-1 – сумма на счете на конец прошлого месяца
4 summadd – сумма ежемесячного пополнения
5 daysn – количество дней в данном месяце, на которые приходился вклад
6 percent – процентная ставка банка - 10%
7 daysy – количество дней в году - 365
Подскажите, пожалуйста, как посчитать №5?
Пользователь в календаре выбирает дату, сумму и т.д. Каждое первое число будет капитализация процентов и первого числа процент будет начисляться на новую сумму.
Вот код, но не по формуле, а для проверки, что он работает.
Могу посчитать количество дней от даты выбранной пользователем (в прошлом) до сегодняшней.
А нужно узнать количество дней в данном месяце, на которые приходился вклад.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<form name="calculator" method="post" id="ajax_form" action="">
    <fieldset>
        <table width="100%" align="center" cellpadding="5">
        <tbody>
            <tr>
                <td width="200">Дата оформления вклада</td>
                <td width="145"><input type="date" name="calendar" size="15"></td>
            </tr>
            <tr>
                <td width="200">Сумма вклада</td>
                <td width="145"><input type="number"  name="summ" size="15" placeholder="Сумма вклада" min="1000" max="3000000" step="1000"></td>
            </tr>
            <tr>
                <td width="200">Срок вклада</td>
                <td width="145">
                    <select name="deposit_term">
                        <option disabled selected value="выбрать">выбрать</option>
                        <option value="1">1 год</option>
                        <option value="2">2 года</option>
                        <option value="3">3 года</option>
                        <option value="4">4 года</option>
                        <option value="5">5 лет</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td width="200">Продление вклада</td>
                <td width="145">
                    <input type="radio" name="radio" checked>
                        Нет &nbsp;&nbsp;&nbsp;&nbsp;
                    <input type="radio" name="radio">
                        Да
                </td>
            </tr>
            <tr>
                <td width="200">Сумма пополнения вклада</td>
                <td width="145">
                    <input type="number" name="summ_add" size="15" placeholder="Сумма пополнения" min="1000" max="3000000" step="1000">
                </td>
            </tr>
        </tbody>
        </table>
    </fieldset>
    <br>
    <fieldset>
        <input type="submit" class="button" value="Рассчитать" name="submit_form">
        <br>
        &nbsp;&nbsp;&nbsp;&nbsp;Результат:
        <?
            $calendar = $_POST['calendar'];
 
            $now = time(); // текущее время (метка времени).
            $your_date = strtotime("$calendar"); // дата указанная пользователем из календаря.
            $datediff = $now - $your_date; // получим разность дат (в секундах).
 
            $summ = $_POST['summ'];
            $deposit_term = $_POST['deposit_term'];
            $summ_add = $_POST['summ_add'];
            $persent = "10";
            $days = ($datediff / (60 * 60 * 24));
            // echo floor("$days"); // Выводим количество дней. Считает всё правильно.
 
            if($summ != 0 and $summ_add >= 1000)
            {
                $result = (($summ +($summ * $persent/100) + $summ_add)) * $deposit_term;
                echo("$result"); // $submit_form
            }
            elseif($summ != 0 and $summ_add <= 1000)
            {
                $result = (($summ +($summ * $persent/100)) * $deposit_term);
                echo("$result"); // $submit_form
            }
            else
            {
                echo("Введите сумму вклада");
            }
            // echo("-");
            // echo floor($datediff / (60 * 60 * 24)); // вычислим количество дней из разности дат.
            // echo("--");
        ?>
    </fieldset>
</form>
0
02.11.2020, 06:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2020, 06:40
Помогаю со студенческими работами здесь

Расчет программ для кредита с аннуитетным платежом
Всем привет! Написала программу, если вывродить вс по отдельности, то программа работает...

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

Вычислить сумму, которая удерживается с работника в счет погашения потребительского кредита и кредита на жилищное строительство
Нужно сделать задачи в Visual Basic 6.0 Задание 1!!!!!! Вычислить сумму, которая удерживается с...

Расчет веса на php
На сайте делаю расчет веса, но почему то не работает вот код &lt;input type=&quot;number&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru