30 сентября 2018
Калькулятор процентов по займу
Алгоритм расчетов в калькуляторе учитывает требования стат. 809 и 823 ГК. В соответствии с указанными статьями сторона-займодавец вправе требовать с заемщика уплату процентов за пользование средствами. Размер устанавливается в договорных условиях с применением фиксированной годовой суммы.
С помощью нашего калькулятора можно быстро сравнить, где выгоднее взять заем и сколько средств, помимо суммы основного долга придется вернуть. Формула вычислений простых процентов соответствует положениям стат. 319 ГК об очередности исполнения требований. Согласно нормам гражданского законодательства, первоначально сторона-заемщик погашает сопутствующие издержки стороны-займодавца, затем – процентные обязательства, в последнюю очередь – сумму тела кредита (основную часть долга).
Как работает калькулятор
Для вычислений укажите точную сумму заемных средств по заключенному договору. Затем внесите календарные параметры долга. Период просрочки определяется по датам выдачи денег и установленной дате оплаты процентов. После чего уточните, указан в договорных условиях размер процентов к уплате или не указан. Если такой размер определен, внесите годовой показатель в процентах. Если в договорных условиях предусмотрен иной тип процентов (в день, в месяц), укажите это. Нажмите кнопку «Рассчитать» и узнайте сумму процентов к оплате займодавцу.
К примеру, получено заемных средств на сумму в 200000 руб. В заключенном сторонами договоре предусмотрен пункт об уплате процентов в размере 20 % годовых. Предположим, средства выданы 01.08.2018 г. и подлежат возврату 31.10.2018 г. с периодом действия договора 3 мес. Рассчитаем сумму процентов к уплате:
- 200000 руб. х 20 % = 40000 руб. / 365 дн. х 92 дн. (общий период пользования средствами) = 10082,19 руб.
Если заемщик частично возвращал долг, при расчетах необходимо внести, на какую сумму погашался займ. Соответствующим образом величина процентов к уплате уменьшится.
Не все договора содержат условие о величине процентов. Согласно п. 1 стат. 809 ГК, если в заключенном договоре соответствующее обозначение отсутствует, величина процентной ставки признается равной ключевой ставке Банка РФ, актуальной на нужный период. Такая величина принята в размере 7,5 %, начиная с 17.09.2018 г., до этого действовал размер 7,25 % (с 26.03.18 г.), 7,5 % (с 12.02.18 г.), 7,75 % (с 18.12.17 г.) и т.д.
var flag = 0; var err = 0; var RadioFlag = 0; var period = 0; //function for showing some fields function functionShow(n) { if (n == 1) { if (flag == 0) { flag = 1; return 0; } } var data1 = Date.parse(document.getElementById('d1').value); var data2 = Date.parse(document.getElementById('d2').value);
flag = 1; //button for change value of fields when it's wrong if (data2 - data1 < 0 || isNaN(data2 - data1)) { document.getElementById('err2').style.display = 'block'; document.getElementById('err3').style.display = 'block'; document.getElementById('myimg').style.display = 'inline-block'; err = 1; return 1; } else { document.getElementById('err2').style.display = 'none'; document.getElementById('err3').style.display = 'none'; document.getElementById('myimg').style.display = 'none'; err = 0; } //i don't know what they doing here var data = Math.round((data2 - data1)*1.15741e-8); period = data; var tmp = data%10; var tmp2 = data%100; var str; //write russian word "day" translate in nessesary form if (tmp2 >= 11 && tmp2 <= 19) { str = " дней" } else if (tmp == 1) { str = " день"; } else if (tmp == 2 || tmp == 3 || tmp ==4) { str = " дня"; } else { str = " дней"; } document.getElementById('stringhide').style.display = 'table-row'; document.getElementById('per').innerHTML = data + str; } //show or not sting in the table function function1(n) { if (n == 2) { document.getElementById('stringhide2').style.display = 'none'; RadioFlag = 2; mainFunction(); } else { document.getElementById('stringhide2').style.display = 'table-row'; RadioFlag = 1; } document.getElementById('solve').disabled=false; } // replace , by . and additing seperators ' ' by three simbols function function2(n) { if (n == 1) { var sum_rub = (document.getElementById('sum_rub').value.replace(/,/,'.')).replace(/ /g,''); document.getElementById('sum_rub2').value = sum_rub; document.getElementById('sum_rub').value = sum_rub.replace(/(d{1,3}(?=(d{3})+(?:.d|b)))/g,"$1 "); if (!isNumeric(sum_rub) || sum_rub < 0) { document.getElementById('err1').style.display = 'block'; err = 1; } else { document.getElementById('err1').style.display = 'none'; err = 0; } } else { var proc = document.getElementById('size').value.replace(/,/,'.'); if (!isNumeric(proc) || proc < 0) { document.getElementById('err5').style.display = 'block'; err = 1; } else { document.getElementById('err5').style.display = 'none'; err = 0; } mainFunction(); } } //check is Number function isNumeric(n) { return !isNaN(parseFloat(n)) && isFinite(n); } //check is it a number belong to integer function isInteger(n) { if(!n.match('^[0-9]+$')) return 0; else return 1; } //round diff form function roundPlus(x, n) { if(isNaN(x) || isNaN(n)) return 1; var m =Math.pow(10,n); return Math.round(x*m)/m; } //main calculating function mainFunction(){ var sum_rub = document.getElementById('sum_rub2').value.replace(/,/,'.'); var res = 0; if (err) { return 1; } if (RadioFlag == 1) {//first chose var proc = document.getElementById('size').value.replace(/,/,'.'); var data1 = new Date(document.getElementById('d1').value); var data2 = new Date(document.getElementById('d2').value); var year1 = data1.getFullYear(); var year2 = data2.getFullYear(); if (year1 == year2) { if ((year2 % 4 == 0) && (year2 % 100 != 0) || (year2 % 400 == 0)) { res = (((sum_rub*proc)/100)/366)*period; } else { res = (((sum_rub*proc)/100)/365)*period; } } else { var res1 = 0; var data_s = data1; for (var i = year1 + 1; i <= year2; ++i) { var data_t = new Date(i+'-01-01'); var year_t = data_t.getFullYear(); var year_s = data_s.getFullYear(); var pr = Math.round((data_t - data_s)*1.15741e-8); if ((year_s % 4 == 0) && (year_s % 100 != 0) || (year_s % 400 == 0)) { res1 += (((sum_rub*proc)/100)/366)*pr; } else { res1 += (((sum_rub*proc)/100)/365)*pr; } if (year2 == year_t) { pr = Math.round((data2 - data_t)*1.15741e-8); if ((year2 % 4 == 0) && (year2 % 100 != 0) || (year2 % 400 == 0)) { res1 += (((sum_rub*proc)/100)/366)*pr; } else { res1 += (((sum_rub*proc)/100)/365)*pr; } } data_s = data_t; } res = res1; } } else { var dt0 = Date.parse('2011-12-26'); var dt1 = Date.parse('2012-9-14'); var dt2 = Date.parse('2016-1-1'); var dt3 = Date.parse('2016-6-14'); var arrdat = [dt0, dt1, dt2, dt3]; var arrstav = [8, 8.25, 11, 10.5]; var count = 4; var data = Date.parse(document.getElementById('d2').value); if (data >= dt0 && data < dt1) { res = (((sum_rub*8)/100)/360)*period; } else if (data >= dt1 && data < dt2) { res = (((sum_rub*8.25)/100)/360)*period; } else if (data >= dt2 && data < dt3) { res = (((sum_rub*11)/100)/360)*period; } else if (data >= dt3) { res = (((sum_rub*10.5)/100)/360)*period; }//smtg what need right date //need to make universal }
document.getElementById('table_out').rows[0].cells[1].innerHTML = String(roundPlus(res, 2)).replace(/(d)(?=(d{3})+([^d]|$))/g, '$1 ') + ' руб.';
document.getElementById('result').style.display = 'block'; }
function changeFunction() { //function to change to fields by another var data1 = document.getElementById('d1').value; var data2 = document.getElementById('d2').value; document.getElementById('d2').value = data1; document.getElementById('d1').value = data2; functionShow(1); functionShow(2); }