Search code examples
phpformulacalculatorfinance

vehicle finance calculation php


I am trying to build a vehicle finance calculator, i would like to improve the code by displaying each month principle payment and each months interest, i have the following code

$interest = 10 /100/12;//10 is the interest rate
$months = 60; //60 months term
$loan = 12000;// total loan amount

$monthly_payment = $loan * $interest / (1-(pow((1+$interest),-$months)));
$total_payable = $monthly_payment * $months;
$total_interest = ($total_payable - $loan);

echo "Monthly Payment = " . $monthly_payment. '<br>';
echo "Total Payable = " . $total_payable . '<br>';
echo "Total Interest = " . $total_interest . '<br>';
echo "Monthly Interest = " . ($total_interest / $months) . '<br>';

to do what i want i need to use the formula on this page http://www.ifsautoloans.com/car-loan-interest/

this is the formula

$100 [$100 = 10%/12 months * $12,000). Consequently, with the first payment, you will pay down your principal by $154.96 [$154.96 = $254.96 – $100].

i just don't understand it, thank you for any help

what i want to do is the same as this link

http://www.thecalculatorsite.com/finance/calculators/carloancalculator.php


Solution

  • I'm giving you quick PHP with a form and output table for monthly view without any styling. The variables are self-explanatory.

    <!DOCTYPE html>
    <html>
    <head>
        <title>Loan Calculator</title>
    </head>
    <body>
        <div id="form-wrapper">
            <h2>Enter your car loan Details...</h2>
            <form id="calculate-loan" method="post" action="">
                <table>
                    <tbody>
                        <tr>
                            <td><label for="currency">Currency:</label></td>
                            <td>
                                <select id="currency" name="currency">
                                    <option>$</option>
                                    <option>&#8377;</option>
                                </select>
                            </td>
                        </tr>
                        <tr>
                            <td><label for="vehicle_value">Vehicle Value:</label></td>
                            <td><input type="number" id="vehicle_value" name="vehicle_value"></td>
                        </tr>
                        <tr>
                            <td><label for="interest_rate">Interest Rate:</label></td>
                            <td><input type="number" min="1" max="100" id="interest_rate" name="interest_rate"></td>
                        </tr>
                        <tr>
                            <td><label for="months">Months:</label></td>
                            <td><input type="number" step="1" id="months" name="months"></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td><input type="submit" name="submit" value="Submit"></td>
                        </tr>
                    </tbody>
                </table>
            </form>
        </div>
        <?php 
        if(isset($_POST['submit'])) {
        ?>
        <div id="loan-details">
            <h2>Vehicle Loan Repayments By Month</h2>
            <?php
                $balance = (float) $_POST['vehicle_value'];
                $monthly_payment = (($_POST['interest_rate'] /(100 * 12)) * $_POST['vehicle_value']) / (1 - pow(1 + $_POST['interest_rate'] / 1200,  (-$_POST['months'])));
            ?>
            <p>
                Loan Payments: <?php echo $_POST['currency'].number_format($monthly_payment * $_POST['months'], 2); ?><br />
                Monthly Payment: <?php echo $_POST['currency'].number_format($monthly_payment, 2); ?><br />
                Total Interest: <?php echo $_POST['currency'].number_format($monthly_payment * $_POST['months'] - $balance, 2); ?>
            </p>
            <table>
                <tbody>
                    <tr>
                        <th>Month</th>
                        <th>Balance</th>
                        <th>Principal</th>
                        <th>Interest</th>
                        <th>Payment</th>
                    </tr>
                    <?php
                    for($month = 0; $month < (int)$_POST['months']; $month++) {
                        $interest = $balance * $_POST['interest_rate'] / 1200;
                        $principal = $monthly_payment - $interest;
                    ?>
                    <tr>
                        <td><?php echo $month + 1 ?></td>
                        <td><?php echo $_POST['currency']. number_format($balance, 2) ?></td>
                        <td><?php echo $_POST['currency']. number_format($principal, 2) ?></td>
                        <td><?php echo $_POST['currency']. number_format($interest, 2) ?></td>
                        <td><?php echo $_POST['currency']. number_format($monthly_payment, 2) ?></td>
                    </tr>
                    <?php
                        $balance -= $principal;
                    }
                    ?>
                </tbody>
            </table>
        </div>
        <?php } ?>
    </body>
    </html>