<?php
/**
* =================================================================
* Credit Calculator Function
* =================================================================
* Function can calculate your credit payments & percents.
* Needed a BCMath Arbitrary Precision Mathematics PHP Extension.
* Correctness: 94.667%
* =================================================================
* @author Mars
* =================================================================
* @param integer $money - credit sum
* @param integer $percent - interest on the credit
* @param integer $months - total months
* @return array
*/
function credit_calculator ($money, $percent, $months) {
bcscale(30);
$debt = $money;
$_percent = 0.00;
$_donation = 0.00;
$result = array();
$per_month = bcdiv($money,$months);
for ($i = 1; $i < $months + 1; ++$i) {
$result[$i] = array();
$x = &$result[$i];
$x['realpay'] = round($per_month,2);
$_percent += $x['percent'] = bcadd(bcdiv(bcmul($debt,($percent/100)),12),(M_SQRT1_2/1000000),2);
$_donation += $x['donation'] = bcadd($per_month,$x['percent'],2);
$x['owed'] = bcsub($debt,$per_month,2);
$debt = bcsub($debt,$per_month);
}
$result['total'] = array(
'realpay' => $money,
'percent' => $_percent,
'donation' => ($_donation < $money) ? $money : $_donation,
'owed' => 0,
);
return $result;
}
// example:
print_r(credit_calculator(120000, 16, 12));
Форум → Программирование → Пыхнуть хотите? → Готовые решения → credit_calculator simple php function
credit_calculator simple php function
-
-
24 марта 2011 г. 17:55, спустя 5 минут 31 секунду
практически уверен, не раз делал калькуляторы для бизнесов попроще, так там столько "если", что твоя функция - дай бог 1% от парамтеров, которые рассчитываются в реальном калькулятореСапожник без сапог -
24 марта 2011 г. 17:59, спустя 4 минуты 19 секунд
практически уверен, не раз делал калькуляторы для бизнесов попроще, так там столько "если", что твоя функция - дай бог 1% от парамтеров, которые рассчитываются в реальном калькуляторе
причем тут бизнес? эта функция просто показывает переплату по банковскому кредиту + сколько нужно вносить оплату ежемесячноСпустя 70 сек.я хочу сделать j2me прогу на телефон, чтобы в ней такая же функция была) -
24 марта 2011 г. 18:09, спустя 9 минут 28 секунд
на самом жеде можно отталкиватся от этого, а в целом реально функционал нужно расширять. и при этом очень существенно. Дуд прав, условий там вагон, и изменение каждого из них влияет на общую картину. -
24 марта 2011 г. 18:22, спустя 12 минут 57 секунд
какие тут могут быть ещё условия?Спустя 167 сек.кстати вот что вернет приведённый выше exampleArray ( [1] => Array ( [realpay] => 10000 [percent] => 1600.00 [donation] => 11600.00 [owed] => 110000.00 ) [2] => Array ( [realpay] => 10000 [percent] => 1466.66 [donation] => 11466.66 [owed] => 100000.00 ) [3] => Array ( [realpay] => 10000 [percent] => 1333.33 [donation] => 11333.33 [owed] => 90000.00 ) [4] => Array ( [realpay] => 10000 [percent] => 1200.00 [donation] => 11200.00 [owed] => 80000.00 ) [5] => Array ( [realpay] => 10000 [percent] => 1066.66 [donation] => 11066.66 [owed] => 70000.00 ) [6] => Array ( [realpay] => 10000 [percent] => 933.33 [donation] => 10933.33 [owed] => 60000.00 ) [7] => Array ( [realpay] => 10000 [percent] => 800.00 [donation] => 10800.00 [owed] => 50000.00 ) [8] => Array ( [realpay] => 10000 [percent] => 666.66 [donation] => 10666.66 [owed] => 40000.00 ) [9] => Array ( [realpay] => 10000 [percent] => 533.33 [donation] => 10533.33 [owed] => 30000.00 ) [10] => Array ( [realpay] => 10000 [percent] => 400.00 [donation] => 10400.00 [owed] => 20000.00 ) [11] => Array ( [realpay] => 10000 [percent] => 266.66 [donation] => 10266.66 [owed] => 10000.00 ) [12] => Array ( [realpay] => 10000 [percent] => 133.33 [donation] => 10133.33 [owed] => 0.00 ) [total] => Array ( [realpay] => 120000 [percent] => 10399.96 [donation] => 130399.96 [owed] => 0 ) )
-
24 марта 2011 г. 18:29, спустя 7 минут 1 секунду
какие тут могут быть ещё условия?
аннуитетный или дифференцированный график? а какой был превый взнос? а комиссия банка? а на остаток или фиксированная?
Спустя 44 сек.это так… то что с ходу вспоминается.
дуд таки прав =)) -
24 марта 2011 г. 18:38, спустя 9 минут 2 секунды
какие тут могут быть ещё условия?
аннуитетный или дифференцированный график? а какой был превый взнос? а комиссия банка? а на остаток или фиксированная?
Спустя 44 сек.это так… то что с ходу вспоминается.
дуд таки прав =))
если аннуитетный, то рассчитать каждый месяц взнос не сложно основываясь на результате $result['total']['donation'], надо просто разделить его на количество месяцев кредита
первого взноса небыло, это банковский кредит, тут обычно первым делом деньги берут а не отдают))Спустя 59 сек.тоже самое про комиссию банкаСпустя 128 сек.<?php /** * ================================================================= * Credit Calculator Function * ================================================================= * Function can calculate your credit payments & percents. * Needed a BCMath Arbitrary Precision Mathematics PHP Extension. * Correctness: 94.667% * ================================================================= * @author Mars * ================================================================= * @param integer $money - credit sum * @param integer $percent - interest on the credit * @param integer $months - total months * @return array */ function credit_calculator ($money, $percent, $months) { bcscale(30); $debt = $money; $_percent = 0.00; $_donation = 0.00; $result = array(); $per_month = bcdiv($money,$months); for ($i = 1; $i < $months + 1; ++$i) { $result[$i] = array(); $x = &$result[$i]; $x['realpay'] = round($per_month,2); $_percent += $x['percent'] = bcadd(bcdiv(bcmul($debt,($percent/100)),12),(M_SQRT1_2/1000000),2); $_donation += $x['donation'] = bcadd($per_month,$x['percent'],2); $x['owed'] = bcsub($debt,$per_month,2); $debt = bcsub($debt,$per_month); } $z = ($_donation < $money) ? $money : $_donation; $result['total'] = array( 'realpay' => $money, 'percent' => $_percent, 'donation' => $z, 'annuitet' => bcdiv($z, $months, 2), 'owed' => 0, ); return $result; }
-
24 марта 2011 г. 18:41, спустя 3 минуты 38 секунд
первого взноса небыло, это банковский кредит, тут обычно первым делом деньги берут а не отдают))
ты ошибаешься ;) -
24 марта 2011 г. 19:03, спустя 21 минуту 28 секунд
вот я писал давно
http://k-f-b.ru/tools/calculator
http://k-f-b.ru/tools/credit
Только у меня там все JS -
18 августа 2012 г. 22:07, спустя 513 дней 2 часа 4 минуты
Из жевательной резинки
Килограммов из пяти
Можно вылепить ботинки
Для последнего пути…
Пожалуйста, авторизуйтесь, чтобы написать комментарий!