<?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 минуты
Из жевательной резинки
Килограммов из пяти
Можно вылепить ботинки
Для последнего пути…
Пожалуйста, авторизуйтесь, чтобы написать комментарий!