Calcular Prestamo Personal

Calculadora de Préstamo Personal: Calcula tu Cuota Mensual :root { –primary-color: #004a99; –secondary-color: #007bff; –success-color: #28a745; –danger-color: #dc3545; –warning-color: #ffc107; –info-color: #17a2b8; –light-color: #f8f9fa; –dark-color: #343a40; –body-bg: #f8f9fa; –card-bg: #ffffff; –text-color: #333; –border-color: #ccc; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: var(–body-bg); color: var(–text-color); line-height: 1.6; margin: 0; padding: 0; display: flex; flex-direction: column; align-items: center; } .container { width: 95%; max-width: 1000px; margin: 20px auto; padding: 20px; background-color: var(–card-bg); border-radius: 8px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } h1, h2, h3 { color: var(–primary-color); text-align: center; margin-bottom: 20px; } h1 { font-size: 2.2em; margin-bottom: 10px; } h2 { font-size: 1.8em; } h3 { font-size: 1.4em; margin-top: 30px; } p { margin-bottom: 15px; color: var(–dark-color); } a { color: var(–secondary-color); text-decoration: none; } a:hover { text-decoration: underline; } .loan-calc-container { background-color: var(–light-color); padding: 25px; border-radius: 8px; box-shadow: inset 0 2px 5px rgba(0,0,0,.05); border: 1px solid var(–border-color); margin-bottom: 30px; } .input-group { margin-bottom: 20px; width: 100%; } .input-group label { display: block; margin-bottom: 8px; font-weight: bold; color: var(–primary-color); } .input-group input[type="number"], .input-group input[type="text"], .input-group select { width: calc(100% – 22px); padding: 12px 10px; border: 1px solid var(–border-color); border-radius: 5px; font-size: 1em; box-sizing: border-box; transition: border-color 0.3s ease; } .input-group input[type="number"]:focus, .input-group input[type="text"]:focus, .input-group select:focus { border-color: var(–primary-color); outline: none; box-shadow: 0 0 0 3px rgba(0, 74, 153, 0.2); } .input-group .helper-text { font-size: 0.85em; color: #666; margin-top: 5px; display: block; } .input-group .error-message { color: var(–danger-color); font-size: 0.8em; margin-top: 5px; height: 1.2em; display: block; } .button-group { display: flex; justify-content: space-between; margin-top: 30px; flex-wrap: wrap; gap: 10px; } .button-group button, .button-group input[type="button"] { padding: 12px 20px; border: none; border-radius: 5px; cursor: pointer; font-size: 1em; font-weight: bold; transition: background-color 0.3s ease, transform 0.2s ease; flex-grow: 1; min-width: 150px; } .button-group button.primary, .button-group input[type="button"].primary { background-color: var(–primary-color); color: white; } .button-group button.primary:hover, .button-group input[type="button"].primary:hover { background-color: #003366; transform: translateY(-2px); } .button-group button.secondary, .button-group input[type="button"].secondary { background-color: var(–info-color); color: white; } .button-group button.secondary:hover, .button-group input[type="button"].secondary:hover { background-color: #118aaf; transform: translateY(-2px); } .results-container { margin-top: 30px; padding: 25px; background-color: var(–primary-color); color: white; border-radius: 8px; text-align: center; box-shadow: 0 4px 10px rgba(0, 74, 153, 0.4); } .results-container h3 { color: white; margin-bottom: 15px; font-size: 1.6em; } .main-result { font-size: 2.5em; font-weight: bold; margin: 10px 0; display: block; } .main-result-label { font-size: 1em; color: rgba(255, 255, 255, 0.8); display: block; margin-bottom: 20px; } .intermediate-results { display: flex; justify-content: space-around; flex-wrap: wrap; margin-top: 25px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.2); } .intermediate-results div { margin: 10px 15px; text-align: center; } .intermediate-results span { font-size: 1.3em; font-weight: bold; display: block; } .intermediate-results p { color: rgba(255, 255, 255, 0.8); font-size: 0.9em; margin: 0; } .formula-explanation { margin-top: 25px; font-size: 0.9em; color: rgba(255, 255, 255, 0.8); border-top: 1px solid rgba(255, 255, 255, 0.2); padding-top: 15px; } table { width: 100%; border-collapse: collapse; margin-top: 30px; margin-bottom: 30px; box-shadow: 0 2px 8px rgba(0,0,0,.1); } thead { background-color: var(–primary-color); color: white; } th, td { padding: 12px 15px; text-align: left; border: 1px solid var(–border-color); } th { font-weight: bold; } tbody tr:nth-child(even) { background-color: var(–light-color); } caption { caption-side: top; font-size: 1.2em; font-weight: bold; color: var(–primary-color); margin-bottom: 10px; text-align: left; } canvas { display: block; margin: 30px auto; max-width: 100%; border: 1px solid var(–border-color); border-radius: 5px; background-color: white; } .section { margin-top: 40px; padding: 30px; background-color: var(–card-bg); border-radius: 8px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } .section h2 { text-align: left; color: var(–primary-color); border-bottom: 2px solid var(–secondary-color); padding-bottom: 8px; margin-bottom: 20px; } .faq-item { margin-bottom: 15px; border-bottom: 1px solid var(–border-color); padding-bottom: 10px; } .faq-item:last-child { border-bottom: none; } .faq-question { font-weight: bold; color: var(–primary-color); cursor: pointer; display: flex; justify-content: space-between; align-items: center; } .faq-question::after { content: '+'; font-size: 1.2em; color: var(–secondary-color); } .faq-answer { display: none; margin-top: 10px; padding-left: 10px; color: var(–dark-color); } .faq-item.open .faq-question::after { content: '-'; } .faq-item.open .faq-answer { display: block; } .internal-links ul { list-style: none; padding: 0; } .internal-links li { margin-bottom: 10px; } .internal-links a { font-weight: bold; } .internal-links p { font-size: 0.9em; color: #555; margin-top: 5px; } footer { text-align: center; padding: 20px; margin-top: 40px; font-size: 0.9em; color: #777; width: 100%; background-color: var(–light-color); } @media (max-width: 768px) { h1 { font-size: 1.8em; } h2 { font-size: 1.5em; } .container { width: 95%; padding: 15px; } .button-group button, .button-group input[type="button"] { flex-grow: 1; min-width: 120px; font-size: 0.9em; } .results-container { padding: 20px; } .main-result { font-size: 2em; } .intermediate-results div { margin: 10px 10px; } th, td { padding: 10px 8px; font-size: 0.9em; } }

Calculadora de Préstamo Personal

Calcula la cuota mensual de tu préstamo personal, el interés total y más. Una herramienta esencial para planificar tus finanzas.

Completa los datos de tu préstamo

Cantidad total de dinero que deseas pedir prestado.
El porcentaje de interés que el prestamista cobra anualmente.
Duración total del préstamo en años.

Resultados del Préstamo Personal

Tu Cuota Mensual Estimada

Interés Total Pagado

Monto Total a Reembolsar

Tasa de Interés Efectiva Anual

La cuota mensual se calcula usando la fórmula de amortización de préstamos: M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1], donde P es el monto principal, i es la tasa de interés mensual, y n es el número total de pagos mensuales.

Tabla de Amortización

Visualiza cómo se distribuyen tus pagos a lo largo del tiempo.

Desglose de Pagos
Período Pago Mensual Interés Pagado Capital Pagado Saldo Restante

Gráfico de Evolución del Saldo

Observa la disminución del saldo pendiente y la proporción de interés y capital en tus pagos.

¿Qué es un Préstamo Personal?

Un préstamo personal es una suma de dinero que una entidad financiera (como un banco o una cooperativa de crédito) otorga a un individuo. A diferencia de otros tipos de préstamos, como las hipotecas o los préstamos para automóviles, los préstamos personales suelen ser de propósito general y no requieren una garantía específica (son "sin aval"). El prestatario se compromete a devolver la cantidad prestada más los intereses acordados en cuotas periódicas durante un plazo determinado. Son una opción popular para financiar gastos imprevistos, consolidar deudas, realizar mejoras en el hogar, cubrir gastos educativos o financiar eventos importantes como bodas o vacaciones.

La mayoría de las personas consideran un préstamo personal cuando necesitan liquidez para un gasto particular que no pueden cubrir con sus ahorros inmediatos. Son ideales para quienes buscan flexibilidad en el uso de los fondos y prefieren un plan de pago estructurado. Quienes desean consolidar múltiples deudas de tarjetas de crédito con intereses altos en un solo pago mensual más manejable también encuentran útil este producto financiero. Un préstamo personal puede ser una herramienta financiera poderosa si se gestiona responsablemente.

Unadesmitificación de préstamos personales revela que, si bien son flexibles, no están exentos de costos. Las tasas de interés varían significativamente según el perfil de riesgo del solicitante, el monto y el plazo del préstamo. Es crucial entender que el "interés total pagado" puede acumularse considerablemente, especialmente en plazos largos o tasas de interés elevadas. Otro error común es pensar que un préstamo personal rápido siempre es la mejor opción; a menudo, estos préstamos exprés conllevan tasas de interés mucho más altas. La clave está en comparar ofertas y elegir la que mejor se adapte a tu capacidad de pago.

Fórmula y Explicación Matemática del Préstamo Personal

Calcular la cuota mensual de un préstamo personal implica comprender la fórmula estándar de amortización de préstamos, también conocida como fórmula de anualidad. Esta fórmula nos permite determinar un pago fijo periódico (generalmente mensual) que cubre tanto el capital prestado como los intereses generados.

La Fórmula Principal

La fórmula para calcular la cuota mensual (M) es:

M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1]

Variables Clave

Variables Utilizadas en la Fórmula
Variable Significado Unidad Rango Típico
M Cuota Mensual Moneda (e.g., €) Depende de P, i, n
P Monto Principal del Préstamo Moneda (e.g., €) 100 – 1,000,000+ €
i Tasa de Interés Mensual Decimal (Tasa Anual / 12 / 100) 0.002 – 0.08 (aproximado 0.2% – 8% mensual)
n Número Total de Pagos (Meses) Número Entero 12 – 360 meses (1 – 30 años)

Derivación Paso a Paso

  1. Convertir Tasa Anual a Mensual: La tasa de interés que se suele proporcionar es anual. Para usarla en la fórmula mensual, la dividimos por 12 y luego por 100 para obtenerla en formato decimal. Por ejemplo, si la tasa anual es 6%, la tasa mensual (i) es 0.06 / 12 = 0.005.
  2. Calcular el Número Total de Pagos: Si el plazo del préstamo es en años, lo multiplicamos por 12 para obtener el número total de cuotas mensuales (n). Si el plazo es de 5 años, n = 5 * 12 = 60.
  3. Aplicar la Fórmula: Sustituimos los valores de P, i, y n en la fórmula de anualidad para obtener M.
  4. Calcular Intereses y Monto Total: Una vez obtenida la cuota mensual (M), el interés total pagado se calcula como (M * n) – P. El monto total a reembolsar es simplemente M * n.

Esta fórmula asume que la tasa de interés es fija durante toda la vida del préstamo y que los pagos se realizan puntualmente cada mes. Comprender esta base matemática es fundamental para cualquier planificación financiera de préstamos.

Ejemplos Prácticos de Préstamos Personales

Veamos cómo funciona la calculadora de préstamo personal con escenarios reales.

Ejemplo 1: Préstamo para Coche

Una persona necesita financiar la compra de un coche y solicita un préstamo personal por un monto de 15,000 € a una tasa de interés anual del 8% durante 4 años (48 meses).

Inputs:

  • Monto del Préstamo: 15,000 €
  • Tasa de Interés Anual: 8%
  • Plazo del Préstamo: 4 años

Resultados Calculados:

  • Cuota Mensual Estimada: Aprox. 358.74 €
  • Interés Total Pagado: Aprox. 2,220.01 €
  • Monto Total a Reembolsar: Aprox. 17,220.01 €

Interpretación: El prestatario pagará 358.74 € cada mes durante 4 años. Al finalizar el plazo, habrá pagado un total de 2,220.01 € en intereses además del monto principal. Esto ilustra el costo de financiar una compra a través de un crédito personal.

Ejemplo 2: Consolidación de Deudas

Alguien desea consolidar varias deudas de tarjetas de crédito con intereses altos y opta por un préstamo personal de 8,000 € a una tasa de interés anual del 12% durante 5 años (60 meses).

Inputs:

  • Monto del Préstamo: 8,000 €
  • Tasa de Interés Anual: 12%
  • Plazo del Préstamo: 5 años

Resultados Calculados:

  • Cuota Mensual Estimada: Aprox. 177.72 €
  • Interés Total Pagado: Aprox. 2,663.11 €
  • Monto Total a Reembolsar: Aprox. 10,663.11 €

Interpretación: La cuota mensual de 177.72 € es probablemente menor que la suma de los pagos mínimos de sus tarjetas de crédito anteriores, simplificando sus finanzas. Sin embargo, el interés total pagado es significativo (más del 33% del principal). Este ejemplo destaca la importancia de comparar las tasas de interés al solicitar un préstamo.

Cómo Usar la Calculadora de Préstamo Personal

Nuestra herramienta está diseñada para ser intuitiva y proporcionarte información clara sobre tus opciones de financiamiento.

  1. Introduce el Monto del Préstamo: Ingresa la cantidad total de dinero que necesitas o deseas pedir prestado en el campo "Monto del Préstamo (€)".
  2. Especifica la Tasa de Interés Anual: En el campo "Tasa de Interés Anual (%)", introduce el porcentaje de interés que te ofrece la entidad financiera. Asegúrate de que sea la tasa anual nominal.
  3. Define el Plazo del Préstamo: Indica en "Plazo del Préstamo (Años)" cuántos años tienes previsto para devolver el dinero.
  4. Haz Clic en 'Calcular Préstamo': Una vez que hayas completado todos los campos, pulsa el botón para ver los resultados.

Interpretando los Resultados

  • Cuota Mensual Estimada: Este es el monto fijo que deberás pagar cada mes. Es crucial asegurarse de que este valor se ajuste a tu presupuesto mensual.
  • Interés Total Pagado: Muestra la suma total de intereses que pagarás durante toda la vida del préstamo. Un interés más bajo significa que el préstamo es más económico.
  • Monto Total a Reembolsar: Es la suma del monto principal y todos los intereses pagados. Te da una visión completa del costo total del préstamo.
  • Tasa de Interés Efectiva Anual: Si aplica, muestra el costo real anual del préstamo, incluyendo comisiones.

Toma de Decisiones: Utiliza estos resultados para comparar diferentes ofertas de préstamos personales. Si la cuota mensual es demasiado alta, considera aumentar el plazo (lo que incrementará el interés total) o buscar una tasa de interés más baja. Nuestra calculadora te ayuda a tomar decisiones informadas al comparar préstamos personales.

Factores Clave que Afectan los Resultados de tu Préstamo Personal

Varios elementos influyen directamente en la cuota mensual, el interés total y las condiciones generales de tu préstamo personal.

  • Monto del Préstamo (Principal): Un monto mayor generalmente resulta en cuotas mensuales más altas y un mayor interés total pagado a lo largo del tiempo, asumiendo que la tasa y el plazo se mantienen constantes.
  • Tasa de Interés Anual (TIN/TAE): Este es uno de los factores más críticos. Una tasa de interés más alta incrementa significativamente tanto la cuota mensual como el interés total. Incluso pequeñas diferencias porcentuales pueden sumar miles de euros en préstamos a largo plazo. La TAE (Tasa Anual Equivalente) es más representativa ya que incluye comisiones y otros gastos.
  • Plazo del Préstamo (Años/Meses): Un plazo más largo reduce la cuota mensual, haciéndola más asequible a corto plazo. Sin embargo, esto implica pagar intereses durante más tiempo, lo que aumenta considerablemente el interés total pagado. Un plazo más corto resulta en cuotas mensuales más altas pero un menor costo total.
  • Perfil de Riesgo del Solicitante: Los prestamistas evalúan tu historial crediticio, ingresos y estabilidad laboral. Un perfil de bajo riesgo suele obtener tasas de interés más favorables, mientras que un mayor riesgo puede implicar tasas más altas o incluso la denegación del préstamo.
  • Comisiones y Gastos Asociados: Muchos préstamos personales incluyen comisiones de apertura, estudio, cancelación anticipada, etc. Estos costos adicionales aumentan el costo efectivo del préstamo y deben ser considerados al evaluar un préstamo. La TAE los refleja, pero es bueno conocerlos en detalle.
  • Condiciones de Amortización Anticipada: La posibilidad de realizar pagos adicionales o cancelar el préstamo por adelantado sin penalizaciones excesivas puede ahorrarte mucho dinero en intereses. Verifica las condiciones antes de firmar.
  • Inflación y Poder Adquisitivo: Aunque no afecta directamente el cálculo de la cuota (que suele ser fija), la inflación puede erosionar el valor real de tus pagos futuros. Si tus ingresos aumentan con la inflación, las cuotas fijas se vuelven relativamente más baratas con el tiempo.

Preguntas Frecuentes (FAQ) sobre Préstamos Personales

¿Cuál es la diferencia entre un préstamo personal y un crédito de consumo?
Aunque a menudo se usan indistintamente, un crédito de consumo está típicamente asociado a la financiación de un bien o servicio específico (como un coche o una TV), mientras que un préstamo personal ofrece mayor flexibilidad en el uso de los fondos, pudiendo ser para consolidar deudas, gastos médicos, etc.
¿Qué es la TAE y por qué es importante?
La Tasa Anual Equivalente (TAE) refleja el costo total anual de un préstamo, incluyendo la tasa de interés nominal (TIN) y todos los gastos y comisiones asociados (apertura, estudio, etc.). Es la métrica más fiable para comparar ofertas de diferentes entidades financieras.
¿Puedo cancelar mi préstamo personal anticipadamente?
Sí, generalmente puedes cancelar tu préstamo personal total o parcialmente antes de tiempo. Sin embargo, la entidad podría cobrar una comisión por cancelación anticipada, regulada por ley (normalmente un porcentaje del capital pendiente).
¿Afecta mi historial crediticio solicitar un préstamo personal?
Solicitar un préstamo personal sí aparece en tu historial crediticio. Múltiples solicitudes en poco tiempo pueden reducir tu puntuación. Sin embargo, pagar puntualmente las cuotas de tu préstamo personal mejorará tu historial y facilitará futuras financiaciones.
¿Qué sucede si no puedo pagar mi cuota mensual?
Si no puedes pagar una cuota, contacta inmediatamente a tu prestamista para explorar posibles soluciones (aplazamiento, reestructuración). No pagar puede generar cargos por mora, afectar negativamente tu historial crediticio y, en casos extremos, llevar a acciones legales.
¿Puedo usar la calculadora si el préstamo es en otra divisa?
Esta calculadora está configurada para mostrar montos en Euros (€). Si tu préstamo es en otra divisa, deberás convertir los montos a Euros o ajustar la configuración si fuera posible para reflejar tu moneda local.
¿Cómo influye el plazo en el costo total del préstamo?
Un plazo más largo reduce la cuota mensual pero aumenta significativamente el interés total pagado. Por ejemplo, un préstamo de 5 años costará menos en intereses totales que el mismo préstamo a 10 años, aunque las cuotas sean más altas.
¿Qué son los "préstamos personales rápidos" y debo tener cuidado?
Los préstamos personales rápidos son aquellos que se aprueban y desembolsan con gran celeridad, a menudo online. Suelen tener tasas de interés y comisiones mucho más elevadas que los préstamos tradicionales. Es fundamental leer detenidamente la letra pequeña y comparar antes de aceptar uno.

© 2023 [Tu Marca/Sitio Web]. Todos los derechos reservados.

La información proporcionada en esta calculadora es solo para fines ilustrativos y educativos. No constituye asesoramiento financiero. Consulta con un profesional antes de tomar decisiones financieras importantes.

var monthlyPaymentElement = document.getElementById('monthlyPayment'); var totalInterestPaidElement = document.getElementById('totalInterestPaid'); var totalAmountRepaidElement = document.getElementById('totalAmountRepaid'); var effectiveInterestRateElement = document.getElementById('effectiveInterestRate'); var amortizationTableBody = document.getElementById('amortizationTableBody'); var loanChartCanvas = document.getElementById('loanChart'); var ctx = loanChartCanvas ? loanChartCanvas.getContext('2d') : null; var chartInstance = null; var principalAmountInput = document.getElementById('principalAmount'); var annualInterestRateInput = document.getElementById('annualInterestRate'); var loanTermYearsInput = document.getElementById('loanTermYears'); var principalAmountError = document.getElementById('principalAmountError'); var annualInterestRateError = document.getElementById('annualInterestRateError'); var loanTermYearsError = document.getElementById('loanTermYearsError'); var resultsContainer = document.getElementById('resultsContainer'); function formatCurrency(amount) { return amount.toLocaleString('es-ES', { style: 'currency', currency: 'EUR', minimumFractionDigits: 2, maximumFractionDigits: 2 }); } function formatPercentage(rate) { return rate.toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 4 }) + '%'; } function isValidNumber(value) { return !isNaN(parseFloat(value)) && isFinite(value); } function validateInput(element, errorElement, min = null, max = null) { var value = element.value; var errorMsg = "; if (value === ") { errorMsg = 'Este campo es obligatorio.'; } else if (!isValidNumber(value)) { errorMsg = 'Por favor, introduce un número válido.'; } else { var numValue = parseFloat(value); if (min !== null && numValue max) { errorMsg = 'El valor no puede ser mayor que ' + max + '.'; } } if (errorElement) { errorElement.textContent = errorMsg; } return errorMsg === "; } function calculateLoan() { var principalAmount = parseFloat(principalAmountInput.value); var annualInterestRate = parseFloat(annualInterestRateInput.value); var loanTermYears = parseInt(loanTermYearsInput.value); var isValid = true; if (!validateInput(principalAmountInput, principalAmountError, 0)) isValid = false; if (!validateInput(annualInterestRateInput, annualInterestRateError, 0, 100)) isValid = false; if (!validateInput(loanTermYearsInput, loanTermYearsError, 1)) isValid = false; if (!isValid) { resultsContainer.style.display = 'none'; return; } var monthlyInterestRate = (annualInterestRate / 100) / 12; var numberOfPayments = loanTermYears * 12; var monthlyPayment = 0; if (monthlyInterestRate > 0) { monthlyPayment = principalAmount * (monthlyInterestRate * Math.pow(1 + monthlyInterestRate, numberOfPayments)) / (Math.pow(1 + monthlyInterestRate, numberOfPayments) – 1); } else { monthlyPayment = principalAmount / numberOfPayments; } var totalInterestPaid = (monthlyPayment * numberOfPayments) – principalAmount; var totalAmountRepaid = principalAmount + totalInterestPaid; var effectiveInterestRate = annualInterestRate; // Simplified for this calculator monthlyPaymentElement.textContent = formatCurrency(monthlyPayment); totalInterestPaidElement.textContent = formatCurrency(totalInterestPaid); totalAmountRepaidElement.textContent = formatCurrency(totalAmountRepaid); effectiveInterestRateElement.textContent = formatPercentage(effectiveInterestRate); resultsContainer.style.display = 'block'; generateAmortizationTable(principalAmount, monthlyInterestRate, numberOfPayments, monthlyPayment); updateChart(principalAmount, monthlyInterestRate, numberOfPayments, monthlyPayment); } function generateAmortizationTable(principal, monthlyRate, periods, monthlyPayment) { amortizationTableBody.innerHTML = "; var balance = principal; var yearData = []; var currentYear = 1; var yearlyInterestPaid = 0; var yearlyPrincipalPaid = 0; for (var i = 0; i < periods; i++) { var interestPayment = balance * monthlyRate; var principalPayment = monthlyPayment – interestPayment; balance -= principalPayment; if (balance < 0) balance = 0; // Ensure balance doesn't go negative due to rounding var row = amortizationTableBody.insertRow(); row.innerHTML = '' + (i + 1) + '' + '' + formatCurrency(monthlyPayment) + '' + '' + formatCurrency(interestPayment) + '' + '' + formatCurrency(principalPayment) + '' + '' + formatCurrency(balance) + ''; yearlyInterestPaid += interestPayment; yearlyPrincipalPaid += principalPayment; // Add data for chart aggregation by year if (i + 1 >= currentYear * 12 || i === periods – 1) { yearData.push({ year: currentYear, interest: yearlyInterestPaid, principal: yearlyPrincipalPaid, remainingBalance: balance }); currentYear++; yearlyInterestPaid = 0; yearlyPrincipalPaid = 0; } } return yearData; // Return year data for chart } function updateChart(principal, monthlyRate, periods, monthlyPayment) { if (!ctx) return; var yearData = generateAmortizationTable(principal, monthlyRate, periods, monthlyPayment); // Regenerate to get aggregated data var labels = yearData.map(function(data) { return 'Año ' + data.year; }); var interestData = yearData.map(function(data) { return data.interest; }); var principalData = yearData.map(function(data) { return data.principal; }); if (chartInstance) { chartInstance.destroy(); } chartInstance = new Chart(ctx, { type: 'bar', data: { labels: labels, datasets: [{ label: 'Interés Pagado por Año', data: interestData, backgroundColor: 'rgba(255, 99, 132, 0.6)', borderColor: 'rgba(255, 99, 132, 1)', borderWidth: 1 }, { label: 'Capital Pagado por Año', data: principalData, backgroundColor: 'rgba(54, 162, 235, 0.6)', borderColor: 'rgba(54, 162, 235, 1)', borderWidth: 1 }] }, options: { responsive: true, maintainAspectRatio: false, scales: { y: { beginAtZero: true, title: { display: true, text: 'Monto (€)' } } }, plugins: { title: { display: true, text: 'Distribución Anual de Pagos' }, legend: { position: 'top', } } } }); } function resetCalculator() { principalAmountInput.value = '10000'; annualInterestRateInput.value = '7.5'; loanTermYearsInput.value = '5'; principalAmountError.textContent = "; annualInterestRateError.textContent = "; loanTermYearsError.textContent = "; resultsContainer.style.display = 'none'; amortizationTableBody.innerHTML = "; if (chartInstance) { chartInstance.destroy(); chartInstance = null; } if (ctx) { ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); } } function copyResults() { var monthlyPayment = monthlyPaymentElement.textContent; var totalInterestPaid = totalInterestPaidElement.textContent; var totalAmountRepaid = totalAmountRepaidElement.textContent; var principalAmount = principalAmountInput.value; var annualInterestRate = annualInterestRateInput.value; var loanTermYears = loanTermYearsInput.value; var assumptions = "Supuestos:\n" + "- Monto del Préstamo: " + formatCurrency(parseFloat(principalAmount)) + "\n" + "- Tasa de Interés Anual: " + formatPercentage(parseFloat(annualInterestRate)) + "\n" + "- Plazo del Préstamo: " + loanTermYears + " años"; var resultText = "Resultados del Préstamo Personal:\n" + "Cuota Mensual Estimada: " + monthlyPayment + "\n" + "Interés Total Pagado: " + totalInterestPaid + "\n" + "Monto Total a Reembolsar: " + totalAmountRepaid + "\n\n" + assumptions; navigator.clipboard.writeText(resultText).then(function() { // Optional: Provide user feedback var copyButton = document.querySelector('button[onclick="copyResults()"]'); var originalText = copyButton.textContent; copyButton.textContent = '¡Copiado!'; setTimeout(function() { copyButton.textContent = originalText; }, 2000); }).catch(function(err) { console.error('Error al copiar: ', err); alert('No se pudo copiar el texto. Por favor, cópialo manualmente.'); }); } // Initial calculation on page load if values are present document.addEventListener('DOMContentLoaded', function() { var storedPrincipal = localStorage.getItem('loanPrincipal'); var storedRate = localStorage.getItem('loanRate'); var storedTerm = localStorage.getItem('loanTerm'); if (storedPrincipal) principalAmountInput.value = storedPrincipal; if (storedRate) annualInterestRateInput.value = storedRate; if (storedTerm) loanTermYearsInput.value = storedTerm; if (principalAmountInput.value && annualInterestRateInput.value && loanTermYearsInput.value) { calculateLoan(); } // Add event listeners for autosave principalAmountInput.addEventListener('input', function() { localStorage.setItem('loanPrincipal', this.value); }); annualInterestRateInput.addEventListener('input', function() { localStorage.setItem('loanRate', this.value); }); loanTermYearsInput.addEventListener('input', function() { localStorage.setItem('loanTerm', this.value); }); // FAQ functionality var faqItems = document.querySelectorAll('.faq-item'); faqItems.forEach(function(item) { var question = item.querySelector('.faq-question'); question.addEventListener('click', function() { item.classList.toggle('open'); }); }); }); // Load Chart.js if not present (for demo purposes, in production you'd include it in ) if (typeof Chart === 'undefined') { var script = document.createElement('script'); script.src = 'https://cdn.jsdelivr.net/npm/chart.js'; script.onload = function() { // Recalculate after chart library is loaded if inputs exist if (principalAmountInput.value && annualInterestRateInput.value && loanTermYearsInput.value) { calculateLoan(); } }; document.head.appendChild(script); } else { // If Chart.js is already loaded or will be loaded, ensure calculation runs // This might need adjustment based on how Chart.js is included in a real WP environment if (principalAmountInput.value && annualInterestRateInput.value && loanTermYearsInput.value) { calculateLoan(); } }

Leave a Comment