Kalkulacja kredytu hipotecznego – jak wybrać najlepszą opcję?

2997,75 zł miesięcznie – tyle wynosi rata modelowego kredytu hipotecznego na 500 000 zł w Polsce. Ale za tą prostą liczbą kryje się finansowa pułapka, która może kosztować nas drugie tyle, ile pożyczamy: po 30 latach oddajemy bankowi aż milion siedemdziesiąt dziewięć tysięcy zło...

04.08.2025 15 min czytania
Kalkulacja kredytu hipotecznego – jak wybrać najlepszą opcję?

2997,75 zł miesięcznie – tyle wynosi rata modelowego kredytu hipotecznego na 500 000 zł w Polsce. Ale za tą prostą liczbą kryje się finansowa pułapka, która może kosztować nas drugie tyle, ile pożyczamy: po 30 latach oddajemy bankowi aż milion siedemdziesiąt dziewięć tysięcy złotych. Własny dom, ta najważniejsza inwestycja życia, może okazać się maratonem przez gąszcz ukrytych opłat, prowizji i nieoczywistych decyzji – a jeden błąd w kalkulacji to czasem 100 000 zł różnicy.

Najważniejsze informacje:

  • Kluczowe czynniki kalkulacji kredytu hipotecznego to: kwota, okres, oprocentowanie, rodzaj rat, prowizje i wkład własny.
  • RRSO (Rzeczywista Roczna Stopa Oprocentowania) jest najbardziej miarodajnym wskaźnikiem porównania ofert – zawsze uwzględnia wszystkie koszty, nie tylko odsetki.
  • Kalkulator kredytu hipotecznego online pozwala w kilka sekund porównać oferty, wyliczyć raty i sprawdzić, jak wysokość raty zależy od parametrów kredytu.
  • Zmiana stóp procentowych może podwoić Twoją ratę – historie Polaków z lat 2021-2023 pokazują, jak dramatyczne mogą być skutki złych przewidywań.

Co naprawdę kryje się pod kalkulacją kredytu hipotecznego?

Kalkulacja kredytu hipotecznego to dużo więcej niż szybkie kliknięcie w kalkulatorze albo rozmowa z doradcą w banku. To fundament, od którego zależy Twoje bezpieczeństwo finansowe na dekady. Polska historia kredytów hipotecznych to historia ludzi, którzy marzyli o własnym domu – i nagle przekonywali się, jak bardzo jedna liczba potrafi zmienić całe życie rodziny.

Zacznijmy od podstaw: kalkulacja obejmuje nie tylko wysokość miesięcznej raty, ale także całkowity koszt zobowiązania – czyli sumę wszystkich oddanych bankowi pieniędzy przez dwadzieścia czy trzydzieści lat. W skład tego kosztu wchodzą nie tylko odsetki, ale także prowizje, ubezpieczenia, opłaty za wcześniejszą spłatę czy wymagany przez bank wkład własny. Popularne w Polsce kalkulatory, takie jak te na TotalMoney.pl czy Lendi.pl, pozwalają wyliczyć tę sumę w kilka sekund, prezentując harmonogram spłat, udział kapitału i odsetek w każdej racie, a przede wszystkim RRSO, zgodnie z wymaganiami ustawowymi i rekomendacjami Komisji Nadzoru Finansowego.

Ale to nie wszystko – za każdą kalkulacją stoi prawdziwy człowiek. Wystarczy przypomnieć sobie medialne historie z lat 2022–2023, kiedy po rekordowych podwyżkach stóp procentowych przez NBP rata przeciętnego kredytu rosła z 1800 do ponad 3200 złotych. Wtedy okazało się, że wcześniej pozornie proste wyliczenia stawały się polem minowym – a źle zrozumiana formuła matematyczna mogła oznaczać finansowy dramat.

Parametry, które zmieniają wszystko: kwota, okres, oprocentowanie i nie tylko

Zastanów się: czy Twój dom ma kosztować 400, 500, czy może 700 tysięcy złotych? Z perspektywy kredytowej odpowiedź na to pytanie decyduje nie tylko o wysokości miesięcznej raty, ale także… o Twoim standardzie życia przez kolejne dekady. Oto parametry, które – jak klucze do sejfu – odsłaniają prawdziwy koszt kredytu:

  • Kwota kredytu – im wyższa, tym większy koszt całkowity i wymagana zdolność kredytowa.
  • Okres spłaty – typowo 25–30 lat; dłuższy okres oznacza niższą ratę, ale wyższe sumaryczne odsetki.
  • Oprocentowanie nominalne – średnio 6% rocznie w połowie 2025 roku; to jednak tylko jedna ze składowych kosztu.
  • Rodzaj rat – do wyboru: równe (annuitetowe) lub malejące. Ich wybór wpływa na rozkład odsetek i kapitału w racie oraz całkowity koszt zobowiązania.
  • Prowizja – opłata za udzielenie kredytu, zwykle od 0% do 3% kwoty kredytu.
  • Wkład własny – wymagane minimum od 20% (KNF, Rekomendacja S). Banki dopuszczają 10% przy dodatkowych zabezpieczeniach, takich jak ubezpieczenie niskiego wkładu własnego.
  • Wskaźnik LTV (loan-to-value) – relacja wartości kredytu do wartości nieruchomości. LTV powyżej 80% oznacza podwyższone ryzyko i często wyższe koszty ubezpieczeń.

To nie jest przypadkowy katalog opłat. To puzzle, które tylko złożone razem pokazują pełny obraz Twojego przyszłego budżetu.

Jak działa kalkulator kredytu hipotecznego w praktyce?

Jak w praktyce zaplanować swoją przyszłość finansową, nie zamieniając się w księgowego? Tu na scenę wchodzą kalkulatory kredytów hipotecznych dostępne w bankach i porównywarkach, na przykład na TotalMoney.pl, Lendi.pl czy Bankier.pl. Zasada działania jest prosta: podajesz kilka podstawowych parametrów – kwotę kredytu, okres, oprocentowanie, rodzaj rat – i natychmiast widzisz ratę oraz całkowity koszt kredytu.

Nie musisz znać się na matematyce – kalkulator od razu wylicza dla Ciebie harmonogram spłat, rozkładając każdą ratę na część kapitałową i odsetkową, a także pokazuje, ile z każdej wpłaty trafia do banku jako „czysty zysk”. Nowoczesne narzędzia po kilku kliknięciach generują także symulację RRSO, zestawiają aktualne oferty kilku banków, a często umożliwiają eksport harmonogramu do Excela.

Co to oznacza w praktyce? Przykładowo – możesz wieczorem, w domowym zaciszu, „przeklikać” warianty kredytu na 25, 27 czy 30 lat i zobaczyć, jak zmienia się rata, łączna spłata oraz udział odsetek. To finansowa mapa – wystarczy wiedzieć, jak z niej korzystać.

Wzór i przykłady wyliczeń – policz, ile naprawdę kosztuje Twój kredyt

Oto klucz, który większość kredytobiorców poznaje… zbyt późno. Rata annuitetowa kredytu hipotecznego (czyli najpopularniejsza w Polsce „równa rata”) liczona jest według wzoru:

A = P × r × (1 + r)n / ((1 + r)n – 1), gdzie: P – kwota kredytu, r – miesięczna stopa procentowa, n – liczba rat (miesiące).

Weźmy przykład z życia: kredyt na 500 000 zł na 30 lat (360 miesięcy), oprocentowany 6% rocznie (czyli 0,5% miesięcznie). Wynik? Miesięczna rata równa ok. 2997,75 zł.
Ale… to nie wszystko. Łączna kwota do oddania bankowi na koniec 30 lat wyniesie aż 1 079 191 zł. Z tego odsetki to prawie 580 000 zł – finansowa cena za czas i bezpieczeństwo.

Zaskakujące są proporcje: pierwsza rata to około 2500 zł odsetek i tylko 498 zł kapitału. Dopiero po latach, gdy saldo zadłużenia maleje, rośnie udział spłacanego kapitału. To właśnie w tym miejscu wielu Polaków przeciera oczy z niedowierzania – tak jak cytowani w jednym z raportów UOKiK klienci, którzy zorientowali się, że „po kilku latach byli zaskoczeni, jak niewielka część raty spłaca kapitał, a gros to odsetki”.

Raty równe czy malejące? Spór o to, co się bardziej opłaca

Dwie szkoły, dwa budżety, dwa modele życia – a wybór ten ma realne przełożenie na portfel. Modele rat dzielą się na dwa główne warianty: równe (annuitetowe) i malejące.

  • Raty równe – to stabilność i przewidywalność, idealne dla tych, którzy cenią pewność co do domowego budżetu. Miesięczna kwota się nie zmienia, ale przez lata spłacasz głównie odsetki – stąd wyższy koszt kredytu w całym okresie.
  • Raty malejące – początkowo wysoka rata, która z każdym miesiącem maleje. W pierwszych latach spłacasz jednocześnie odsetki i dużą część kapitału, dzięki czemu łączna wysokość odsetek jest niższa – ale musisz mieć większą zdolność kredytową na starcie.

Co z tego wynika? Jeśli masz pewną pracę i zależy Ci na łatwym planowaniu wydatków – raty równe to spokój. Jeśli jednak stać Cię na wyższe wpłaty na początku lub liczysz na wzrost dochodów w przyszłości – system rat malejących premiuje Twoją odwagę niższym kosztem kredytu.

Porównanie ofert: tabele, wykresy, przykłady

Rynkowy labirynt ofert bankowych sprawia, że wybór „na oko” niemal zawsze okazuje się zgubny dla portfela. Tu nie wystarczy sprawdzić, która rata wygląda na najniższą – pełny obraz dają dopiero dane w tabeli porównawczej. Oto przykładowe zestawienie symulacji dla kredytu na 30 lat, 500 000 zł, przy 6% oprocentowania:

Parametr Kredyt A
(raty równe)
Kredyt B
(raty malejące)
Kredyt C
(raty równe, wyższa prowizja)
Kwota kredytu 500 000 zł 500 000 zł 500 000 zł
Okres kredytowania 30 lat 30 lat 30 lat
Oprocentowanie nominalne 6% rocznie 6% rocznie 6% rocznie
Prowizja 0% 0% 2%
Rodzaj rat równe malejące równe
Pierwsza rata 2997,75 zł 4166,67 zł 2997,75 zł
Ostatnia rata 2997,75 zł 1390,28 zł 2997,75 zł
Łączna spłata 1 079 191 zł 957 500 zł 1 089 191 zł
Odsetki 579 191 zł 457 500 zł 579 191 zł
RRSO 6,15% 6,12% 6,65%

Jak widać, różnica w całkowitej spłacie między ratami równymi a malejącymi to ponad 120 000 zł. Dodatkowe 10 000 zł kosztuje zwiększona prowizja w wariancie C. Warto analizować dane – to właśnie one rządzą w tej grze.

Ważniejsze niż rata: jak czytać wskaźniki RRSO i LTV

Wielu kredytobiorców patrzy tylko na miesięczną ratę – i tu tkwi pierwszy błąd, przez który można stracić dziesiątki tysięcy złotych. Zdecydowanie ważniejsze są dwa parametry: RRSO i LTV.

  • RRSO (rzeczywista roczna stopa oprocentowania) – wskaźnik, który uwzględnia nie tylko odsetki, ale i prowizje, koszty ubezpieczeń oraz wszelkie inne opłaty związane z kredytem. Został wprowadzony do porównywania ofert na rynkach unijnych i jest opisany w ustawie o kredycie hipotecznym.
  • LTV – jeżeli wskaźnik wykracza ponad 80%, musisz się liczyć z droższym ubezpieczeniem i większym ryzykiem „przewartościowania” nieruchomości.

Kalkulator kredytowy to narzędzie, które pomaga świadomie wybrać najlepszą ofertę dla siebie – powtarzają doradcy na łamach serwisów takich jak Lendi.pl czy Bankier.pl.

Warto to szczególnie podkreślić: banki mają obowiązek informowania o RRSO w każdej ofercie kredytowej – jeśli instytucja tego nie robi, warto to zgłosić do UOKiK albo zwrócić się do innego banku.

Prawdziwe historie i lekcje z ostatnich lat

To, co dla niektórych pozostaje tylko matematyczną symulacją, dla tysięcy polskich rodzin w ostatnich latach stało się gorzką rzeczywistością. Kiedy w 2021 roku NBP rozpoczął cykl gwałtownych podwyżek stóp procentowych, wielu kredytobiorców stanęło wobec groźby bankructwa. Przykład? Rata kredytu z 1800 zł w 2021 roku wzrosła do ponad 3200 zł w połowie 2023 roku. Media donosiły o wzroście liczby wniosków o wakacje kredytowe i dramatycznych decyzjach o sprzedaży mieszkań.

Ale nie chodzi wyłącznie o stopy procentowe. W jednym z raportów UOKiK opisano historie klientów, którzy po 5 latach regularnych spłat zorientowali się, że ponad 60% wpłaconych pieniędzy poszło na odsetki. To typowa pułapka przy wyborze rat annuitetowych na długi okres (30 lat). Warto o tym pamiętać, wyliczając własną zdolność na podstawie kalkulatorów bankowych.

Czego (nie) powiedzą Ci banki? O ryzykach i kontrowersjach

To, czego nie znajdziesz w folderach reklamowych, a często także w rozmowie z doradcą, to informacje o wszystkich potencjalnych kosztach i ryzykach. Przykład? Sprawy tzw. „kredytów frankowych”, w których dopiero po latach okazało się, że ryzyko kursowe i niejasne zasady wyliczania opłat mogą doprowadzić do sporów sądowych na ogromną skalę. Od 2015 roku UOKiK oraz KNF w kolejnych rekomendacjach wskazywały na konieczność lepszego informowania o całkowitych kosztach i ryzyku zmienności stóp.

Banki zobowiązane są również informować o kosztach wcześniejszej spłaty, ubezpieczeniach wymaganych przy niskim wkładzie własnym czy zmianach w zasadach oceny zdolności kredytowej. Pozornie korzystna rata może być więc okupiona wysoką prowizją – albo dodatkowymi opłatami uzależnionymi od wartości nieruchomości.

Jak uniknąć błędów przy kalkulacji i wyborze kredytu? 5 kroków do świadomej decyzji

Co zrobić, by naprawdę dobrze wybrać kredyt hipoteczny? Oto lista pięciu kroków, które – jeśli potraktujesz je poważnie – mogą uratować Twój spokojny sen na długie lata:

  • Porównuj oferty z użyciem narzędzi online: korzystaj z rankingów i kalkulatorów takich jak TotalMoney.pl, Lendi.pl czy Bankier.pl.
  • Obliczaj RRSO i łączny koszt kredytu dla każdej analizowanej opcji – nie poprzestawaj na wysokości raty!
  • Sprawdź wymagany wkład własny i LTV – upewnij się, że nie musisz dokupywać kosztownego ubezpieczenia lub płacić wyższej prowizji.
  • Kalkuluj różne warianty spłaty – sprawdź, jak będą wyglądały raty równe i malejące, czy stać Cię na wyższe raty na początku.
  • Nie daj się zaskoczyć „drobnemu drukowi” – przeczytaj warunki dotyczące wcześniejszej spłaty, zmiany WIBOR czy dodatkowych opłat.

Zacznij od dwóch źródeł: oficjalny poradnik KNF na www.knf.gov.pl (sekcja o wymaganiach wobec banków i minimalnym wkładzie własnym) oraz zestawienia prezentowane przez UOKiK. Każdą wątpliwość konsultuj z niezależnym doradcą – nie musi to być „twój” bank.

Pobierz i porównuj: polecane kalkulatory i arkusze kredytowe

Na koniec – konkrety, które możesz wykorzystać już dziś. Oto lista narzędzi, z których korzystają nie tylko specjaliści, ale i zwykli konsumenci:

Wyobraź sobie, że każdy z tych kalkulatorów to mapa, która pozwala bezpiecznie przepłynąć przez wzburzone morze kredytowych ofert. Nie warto polegać na „najniższej racie” – tylko precyzyjna kalkulacja, wskaźniki RRSO i szczegóły ofert naprawdę chronią Twój domowy budżet.

<style> :root { font-family: system-ui,-apple-system,BlinkMacSystemFont,sans-serif; --radius: 12px; --shadow: 0 8px 24px rgba(0,0,0,0.08); } body { margin: 0; padding: 1rem; background: #f5f7fa; color: #1f2d3a; line-height: 1.4; } .container { max-width: 900px; margin: auto; display: grid; gap: 1.5rem; } .card { background: white; padding: 1.25rem 1.5rem; border-radius: var(--radius); box-shadow: var(--shadow); } h1 { margin-top: 0; } label { display: block; margin: .5rem 0 .25rem; font-weight: 600; font-size: .9rem; } input, select { width: 100%; padding: .55rem .75rem; border: 1px solid #d1d9e6; border-radius: 8px; font-size: .95rem; box-sizing: border-box; } .grid { display: grid; gap: 1rem; } .inline { display: flex; gap: 1rem; flex-wrap: wrap; } button { background: #2563eb; color: white; border: none; padding: .75rem 1.25rem; border-radius: 8px; cursor: pointer; font-weight: 600; font-size: .95rem; box-shadow: 0 6px 20px rgba(37,99,235,0.25); } button:disabled { opacity: .6; cursor: not-allowed; } .result { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: .5rem; } .badge { background: #eef7ff; padding: .5rem .75rem; border-radius: 6px; flex: 1 1 200px; min-width: 180px; } table { width: 100%; border-collapse: collapse; font-size: .85rem; margin-top: .75rem; overflow-x: auto; } th, td { padding: .45rem .6rem; border: 1px solid #e3e8f1; text-align: right; } th { background: #f0f6fc; position: sticky; top: 0; } .small { font-size: .7rem; color: #555; } .flex-between { display: flex; justify-content: space-between; align-items: center; } .download { margin-left: auto; } @media (min-width: 760px) { .inputs { grid-template-columns: repeat(2,1fr); } } </style>

Kalkulator kredytu hipotecznego

Oblicza ratę annuitetową (równą) i malejącą wraz z harmonogramem.
  <div class="grid inputs" style="margin-top:1rem;">
    <div>
      <label for="principal">Kwota kredytu (PLN)</label>
      <input type="number" id="principal" value="500000" min="0" step="1000" />
    </div>
    <div>
      <label for="annualRate">Oprocentowanie nominalne (%) rocznie</label>
      <input type="number" id="annualRate" value="6" min="0" step="0.01" />
    </div>
    <div>
      <label for="years">Okres spłaty (lata)</label>
      <input type="number" id="years" value="30" min="1" step="1" />
    </div>
    <div>
      <label for="type">Rodzaj rat</label>
      <select id="type">
        <option value="annuity">Równe (annuitetowe)</option>
        <option value="declining">Malejące</option>
      </select>
    </div>
  </div>

  <div style="margin-top:1rem;">
    <button id="computeBtn">Oblicz</button>
  </div>

  <div id="summary" class="result" aria-live="polite" style="margin-bottom:1rem;"></div>

  <div class="card" id="amortizationCard" style="padding:1rem;">
    <div class="flex-between">
      <h2 style="margin:0; font-size:1.1rem;">Harmonogram spłaty (pierwsze 20 rat)</h2>
      <div>
        <button id="downloadCsv">Pobierz CSV</button>
      </div>
    </div>
    <div id="scheduleWrapper" style="overflow:auto;"></div>
  </div>

  <div style="margin-top:1rem; font-size:.8rem;">
    <strong>Uwagi:</strong>  
    <ul>
      <li>Rata annuitetowa: stała miesięczna płatność; udział odsetek maleje, kapitału rośnie.</li>
      <li>Raty malejące: stała część kapitału + malejące odsetki → malejąca rata, niższy koszt odsetkowy.</li>
      <li>Całkowita spłata uwzględnia tylko kapitał + odsetki (nie obejmuje np. prowizji czy ubezpieczeń).</li>
    </ul>
  </div>

</div>
<script> function formatPLN(x) { return x.toLocaleString('pl-PL', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + ' zł'; } function computeAnnuity(principal, annualRate, years) { const monthlyRate = annualRate / 12; const n = years * 12; if (monthlyRate === 0) { const payment = principal / n; return { payment, schedule: Array.from({ length: n }, (_, i) => ({ month: i + 1, interest: 0, principal: payment, balance: principal - payment * (i + 1) < 0 ? 0 : principal - payment * (i + 1) }))}; } const r = monthlyRate; const factor = Math.pow(1 + r, n); const payment = principal * (r * factor) / (factor - 1); let balance = principal; const schedule = ; for (let i = 0; i < n; i++) { const interest = balance * r; const principalRepayment = payment - interest; balance -= principalRepayment; if (balance < 1e-8) balance = 0; schedule.push({ month: i + 1, interest, principal: principalRepayment, balance }); } return { payment, schedule }; } function computeDeclining(principal, annualRate, years) { const monthlyRate = annualRate / 12; const n = years * 12; const principalPart = principal / n; let balance = principal; const schedule = ; let payment0 = null; for (let i = 0; i < n; i++) { const interest = balance * monthlyRate; const payment = principalPart + interest; if (i === 0) payment0 = payment; balance -= principalPart; if (balance < 1e-8) balance = 0; schedule.push({ month: i + 1, interest, principal: principalPart, balance }); } // average payment is not constant; return first payment just for reference return { paymentFirst: payment0, schedule }; } function summarize(schedule, type, annuityPayment) { let totalInterest = 0; let totalPaid = 0; schedule.forEach(s => { totalInterest += s.interest; totalPaid += (s.interest + (s.principal || 0)); }); return { totalInterest, totalPaid }; } function buildTable(schedule, type) { const limited = schedule.slice(0, 50); // show first 50 const table = document.createElement('table'); const thead = document.createElement('thead'); thead.innerHTML = ` Nr Saldo początkowe Kapitał Odsetki Rata Saldo końcowe `; table.appendChild(thead); const tbody = document.createElement('tbody'); let prevBalance = null; limited.forEach((row) => { const tr = document.createElement('tr'); const balanceBefore = prevBalance === null ? (row.balance + row.principal) : prevBalance; const payment = (row.principal || 0) + row.interest; tr.innerHTML = ` ${row.month} ${formatPLN(balanceBefore)} ${formatPLN(row.principal)} ${formatPLN(row.interest)} ${formatPLN(payment)} ${formatPLN(row.balance)} `; prevBalance = row.balance; tbody.appendChild(tr); }); table.appendChild(tbody); return table; } function makeCSV(schedule) { const lines = [ ]; let prevBalance = null; schedule.forEach(row => { const balanceBefore = prevBalance === null ? (row.balance + row.principal) : prevBalance; const payment = (row.principal || 0) + row.interest; lines.push([ row.month, balanceBefore.toFixed(2), row.principal.toFixed(2), row.interest.toFixed(2), payment.toFixed(2), row.balance.toFixed(2) ]); prevBalance = row.balance; }); return lines.map(l => l.join(';')).join('\n'); } function downloadCSVFile(text, filename) { const blob = new Blob(, { type: 'text/csv;charset=utf-8;' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = filename; document.body.appendChild(a); a.click(); setTimeout(() => { document.body.removeChild(a); URL.revokeObjectURL(url); }, 100); } document.getElementById('computeBtn').addEventListener('click', () => { const principal = parseFloat(document.getElementById('principal').value); const annualInput = parseFloat(document.getElementById('annualRate').value); const years = parseFloat(document.getElementById('years').value); const type = document.getElementById('type').value; if (isNaN(principal) || isNaN(annualInput) || isNaN(years) || principal <= 0 || years <= 0) { alert('Uzupełnij poprawnie wszystkie pola.'); return; } const annualRate = annualInput / 100; const monthlyRate = annualRate / 12; let schedule, payment, extra; if (type === 'annuity') { const res = computeAnnuity(principal, monthlyRate, years); payment = res.payment; schedule = res.schedule; extra = summarize(schedule, type); } else { const res = computeDeclining(principal, monthlyRate, years); payment = res.paymentFirst; schedule = res.schedule; extra = summarize(schedule, type); } const summaryEl = document.getElementById('summary'); summaryEl.innerHTML = ''; const totalPaid = extra.totalPaid; const totalInterest = extra.totalInterest; const card1 = document.createElement('div'); card1.className = 'badge'; card1.innerHTML = `
Rata początkowa: ${formatPLN(type === 'annuity' ? payment : payment)}
${type === 'annuity' ? 'stała rata przez cały okres' : 'pierwsza rata (malejące)'}
`; const card2 = document.createElement('div'); card2.className = 'badge'; card2.innerHTML = `
Łącznie zapłacisz: ${formatPLN(totalPaid)}
`; const card3 = document.createElement('div'); card3.className = 'badge'; card3.innerHTML = `
Odsetki: ${formatPLN(totalInterest)}
`; summaryEl.appendChild(card1); summaryEl.appendChild(card2); summaryEl.appendChild(card3); const wrapper = document.getElementById('scheduleWrapper'); wrapper.innerHTML = ''; wrapper.appendChild(buildTable(schedule, type)); // Store current schedule for download window.latestCSV = makeCSV(schedule); }); document.getElementById('downloadCsv').addEventListener('click', () => { if (window.latestCSV) { downloadCSVFile(window.latestCSV, 'harmonogram_kredytu.csv'); } else { alert('Najpierw oblicz harmonogram.'); } }); document.getElementById('resetBtn').addEventListener('click', () => { document.getElementById('principal').value = ''; document.getElementById('annualRate').value = ''; document.getElementById('years').value = ''; document.getElementById('summary').innerHTML = ''; document.getElementById('scheduleWrapper').innerHTML = ''; window.latestCSV = null; }); // Auto compute on load window.addEventListener('DOMContentLoaded', () => { document.getElementById('computeBtn').click(); }); </script>

Udostępnij artykuł

Porownaj:
0 / 4