Калькулятор розрахунку відсотків по ст. 625 ЦК України

  • перевірено 28.08.2021
  • індекс інфляції від 16.03.2017
  • вступила у чинність 01.01.2004

Калькулятор працює по правилам статті 625 ЦК України, прийнятої 1 січня 2004 года.

Увага! Оновлення індекс інфляції було 16 березеня 2017 року.

Калькулятор рахує неустойку за договором поставки, підряду, кредитного договору та інших видів невиконання грошових зобов'язань у гривнях.

' + '
' + inner + '
' + ''; } function preparePayments(payments) { if (!payments || !payments.length) return ''; var res = ''; for (var i = 0; i < payments.length; i++) { var p = payments[i]; res += ';' + fd(p.date) + '_' + p.sum + '_' + p.order; } return res.substring(1); } function processData(sum, data, dateStart, dateFinish, loanType) { var percent = roundTo(data.percent, 1); var ipcType = data.type; var days = dateDiff(dateFinish, dateStart, loanType); var daysInPeriod; var daysInYear = dateDiff(new Date(dateStart.getFullYear() + 1, 0, 0), new Date(dateStart.getFullYear(), 0, 1), DAYS_ABS); if (ipcType == INFLATION_YY) daysInPeriod = daysInYear; else daysInPeriod = daysInMonth(dateStart.getFullYear(), dateStart.getMonth() + 1); return {percent: percent, ipcType : ipcType, cost: countCost(sum, days, daysInPeriod, percent), days:days, daysInPeriod: daysInPeriod, daysInYear:daysInYear, dateStart:dateStart, dateFinish:dateFinish, sum:sum}; } function processData3(sum, dateStart, dateFinish) { var percent = 103; var days = dateDiff(dateFinish, dateStart, DAYS_ABS); var daysInYear = dateDiff(new Date(dateStart.getFullYear() + 1, 0, 0), new Date(dateStart.getFullYear(), 0, 1), DAYS_ABS); return {cost: countCost(sum, days, daysInYear, percent), days:days, daysInYear:daysInYear, dateStart:dateStart, dateFinish:dateFinish, sum:sum}; } function collectPayments() { var res = []; var form = document.calcTable; var payDates = form.elements['payDates[]']; var val; if (payDates.length) {// больше, чем 2 оплаты var paySums = form.elements['paySums[]']; var payOrders = form.elements['payOrders[]']; for (var i = 0; i < payDates.length; i++) { val = testPaymentLine(payDates[i], paySums[i], payOrders[i]); if (!val) return null; if (val.date != null) res.push(val); } } else { val = testPaymentLine(form.elements['payDates[]'], form.elements['paySums[]'], form.elements['payOrders[]']); if (!val) return null; if (val.date != null) res.push(val); } return sortPayments(res); } function sortPayments(arr) { for (var i = 0; i + 1 < arr.length; i++) for (var j = i + 1; j < arr.length; j++) if (arr[i].date > arr[j].date) { var tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } return arr; } function testPaymentLine(payDate, paySum, payOrder) { if (!(payDate.value && paySum.value)) return {date: null, sum: null, order: null}; var resDate = null; if (payDate.value) { resDate = dateParse(payDate.value); } if (!resDate) { wrongData($(payDate).attr('id')); return null; } var resSum = null; if (paySum.value) { resSum = normalizeLoan(paySum.value); } if (!resSum) { wrongData($(paySum).attr('id')); return null; } return {date: resDate, datePlus: new Date(resDate.getTime() + ONE_DAY), sum: resSum, order: payOrder.value}; } function fd(date) { var day = date.getDate(); if (day < 10) day = '0' + day; var monthIndex = date.getMonth() + 1; if (monthIndex < 10) monthIndex = '0' + monthIndex; var year = date.getFullYear(); return day + '.' + monthIndex + '.' + year; } function countCost(money, days, daysOnMonth, percent) { var res = money*days*(percent - 100)/(daysOnMonth*100.); return roundTo(res, 2); } function roundTo(value, digits) { digits = Math.pow(10, digits); var res = Math.round(value*digits)/digits; return parseFloat(res.toFixed(2)); } function wrongData(id) { var d = $('#' + id); d.addClass('error-field'); } function normalizeLoan(money) { money = (money).replace(',', '.').replace(/ /g, ''); return money; } function ggg(id) { return document.getElementById(id).value; } var ONE_DAY = 1000*60*60*24; var DAYS_ABS = 1; var DAYS_30 = 2; var DAYS_30_SMALL = 3; function dateDiff(date1, date2, type) { var date1_ms = date1.getTime(); var date2_ms = date2.getTime(); var difference_ms = date1_ms - date2_ms; var absDiff = Math.round(difference_ms/ONE_DAY); if (type == DAYS_ABS) { return absDiff + 1; } /*else if (type == DAYS_30 && Math.abs(absDiff) <= 30) { return absDiff + 1; }*/ var day1 = date1.getDate(); var day2 = date2.getDate(); var month2 = date2.getMonth() + 1; var month1 = date1.getMonth() + 1; var year2 = date2.getFullYear(); var year1 = date1.getFullYear(); /*var addDays; var nextDay = new Date(date1_ms + ONE_DAY); if (nextDay.getDate() == day2) { addDays = 0; if (nextDay.getMonth() + 1 != month1) month1++; } else if (day1 < day2) { month1--; addDays = daysInMonth(year1, month1) + day1 - day2; } else { addDays = day1 - day2 + 1; } var monthsDiff = (month1 + 12*year1) - (month2 + 12*year2); return monthsDiff*30 + addDays;*/ return 30*(12*(year1-year2)+(month1-month2))+day1-day2+1; } function daysInMonth(year, month) { return new Date(year, month, 0).getDate(); } function dateParse(dateStr) { if (dateStr == null) return null; var dateParts = dateStr.split("."); if (dateParts.length != 3) return null; var d = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]); if (d && !isNaN(d.getTime())) return d; return null; } function moneyFormat(money, digits) { if (digits == undefined) digits = 2; //money = normalizeLoan(money); return addCommas(parseFloat(money).toFixed(digits)).replace(/\./g, ','); } function addCommas(nStr) { nStr += ''; x = nStr.split('.'); x1 = x[0]; x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ' ' + '$2'); } return x1 + x2; } var requestData = []; function ph() { var path = document.location.href; var ind = path.indexOf("#"); if (ind == -1) return requestData; path = path.substring(ind + 1); var items = path.split("&"); for (var i = 0; i < items.length; i++) { var data = items[i].split("="); if (data.length == 2) { requestData[data[0]] = data[1]; } } return requestData; } function uh(requestData) { var res = ''; for (var word in requestData) { if (requestData[word]) res += "&" + word + "=" + requestData[word]; } document.location.hash = res? res.substring(1) : res; } function clearCalc() { $('#loanAmount').val(''); $('#dateStart').val(''); $('#dateFinish').val(''); document.getElementById('loanType').selectedIndex = 1; document.getElementById('resultPane').innerHTML = ''; $('.resultAppearing').hide(); $('#pays').html(''); payId = 0; addPay(); uh([]); } function copyToClipboard(elementId) { fnSelect(elementId); document.execCommand("copy"); fnDeSelect(); } function copyTableToClipboard(elementId) { copyToClipboard(elementId); alert('Таблица скопирована'); } function copyHrefToClipboard(elementId) { document.getElementById(elementId).style.display = 'block'; copyToClipboard(elementId); document.getElementById(elementId).style.display = 'none'; alert('Ссылка на результаты скопирована'); } function fnSelect(objId) { fnDeSelect(); if (document.selection) { var range = document.body.createTextRange(); range.moveToElementText(document.getElementById(objId)); range.select(); } else if (window.getSelection) { var range = document.createRange(); range.selectNode(document.getElementById(objId)); window.getSelection().addRange(range); } } function fnDeSelect() { if (document.selection) document.selection.empty(); else if (window.getSelection) window.getSelection().removeAllRanges(); } function setPayments(params) { var elements = params.split(';'); if (elements.length == 0) return; var d = elements[0].split('_'); $('#payDate0').val(d[0]); $('#paySum0').val(d[1]); $('#payOrder0').val(d[2]); for (i = 1; i < elements.length; i++) { var id = payId; addPay(); d = elements[i].split('_'); $('#payDate' + id).val(d[0]); $('#paySum' + id).val(d[1]); $('#payOrder' + id).val(d[2]); } } var payId = 1; function addPay() { var str = '
' + ' на сумму ' + ' доп. ' + ' '; if (payId) str += ' '; str += '
'; $('#pays').append(str); $("#payDate" + payId).datepicker(dpOptions); payId++; } function removePay(id) { $('#pay' + id).remove(); } function updateData() { ud(); } function parseHash() { ph(); } function updateHash(requestData) { uh(requestData); }

Введіть параметри заборгованості

Сума заборгованості гривень
Період прострочення:
Початок періоду
Кінець періоду / сьогодні
Часткова оплата заборгованості:
на сумму дод.
 
Постійна посилання на результати розрахунку
Заборгованість: Період прострочення: с по
Поділися з друзями

comments powered by HyperComments

Описание калькулятора расчёта процентов