diff --git a/codigo/AlugarxCompar/alugaroucomprar.html b/codigo/AlugarxCompar/alugaroucomprar.html new file mode 100644 index 0000000..480684c --- /dev/null +++ b/codigo/AlugarxCompar/alugaroucomprar.html @@ -0,0 +1,93 @@ + + + + + + Alugar ou Financiar + + + + +
+ +
+
+

+
+
+

Informações sobre o imóvel

+ + + + + + + + +
+ +
+

Financiamento

+ + + + + + + + +
+ +
+ +
+ +
+

Financiando

+ + + + + + +
+ +
+

Alugando e Investindo

+ + + + + + +
+
+
+ + + + diff --git a/codigo/AlugarxCompar/script.js b/codigo/AlugarxCompar/script.js new file mode 100644 index 0000000..4351562 --- /dev/null +++ b/codigo/AlugarxCompar/script.js @@ -0,0 +1,45 @@ +function calcularResultados() { + const valorCompra = parseFloat(document.getElementById('valorCompra').value); + const valorAluguel = parseFloat(document.getElementById('valorAluguel').value); + const valorizacaoAnual = parseFloat(document.getElementById('valorizacaoAnual').value) / 100; + const valorIGPM = parseFloat(document.getElementById('valorIGPM').value) / 100; + const entrada = parseFloat(document.getElementById('entrada').value); + const outrosCustos = parseFloat(document.getElementById('outrosCustos').value); + const prazoFinanciamento = parseInt(document.getElementById('prazoFinanciamento').value); + const cet = parseFloat(document.getElementById('cet').value) / 100; + + const valorFinanciado = valorCompra - entrada + outrosCustos; + const jurosMensal = cet / 12; + + const mensalidade = valorFinanciado * jurosMensal / (1 - Math.pow(1 + jurosMensal, -prazoFinanciamento)); + const totalPagoFinanciamento = mensalidade * prazoFinanciamento; + + const patrimonioTotalFinanciando = valorCompra * Math.pow(1 + valorizacaoAnual, prazoFinanciamento / 12); + const totalAportadoFinanciando = entrada; + + let valorTotalAluguel = 0; + let aluguelAtual = valorAluguel; + for (let i = 0; i < prazoFinanciamento; i++) { + valorTotalAluguel += aluguelAtual; + if ((i + 1) % 12 === 0) { + aluguelAtual *= 1 + valorIGPM; + } + } + + let totalAportadoAlugInvestindo = entrada; + let saldoInvestimento = 0; + + for (let i = 0; i < prazoFinanciamento; i++) { + saldoInvestimento += (mensalidade - valorAluguel) * Math.pow(1 + valorizacaoAnual / 12, prazoFinanciamento - i); + } + totalAportadoAlugInvestindo += saldoInvestimento; + const patrimonioTotalAlugInvestindo = totalAportadoAlugInvestindo * Math.pow(1 + valorizacaoAnual, prazoFinanciamento / 12); + + document.getElementById('patrimonioTotalFinanciando').value = patrimonioTotalFinanciando.toFixed(2); + document.getElementById('totalPagoFinanciando').value = totalPagoFinanciamento.toFixed(2); + document.getElementById('totalAportadoFinanciando').value = totalAportadoFinanciando.toFixed(2); + + document.getElementById('patrimonioTotalAlugInvestindo').value = patrimonioTotalAlugInvestindo.toFixed(2); + document.getElementById('totalPagoAluguel').value = valorTotalAluguel.toFixed(2); + document.getElementById('totalAportadoAlugInvestindo').value = totalAportadoAlugInvestindo.toFixed(2); +} \ No newline at end of file diff --git a/codigo/AlugarxCompar/style.css b/codigo/AlugarxCompar/style.css new file mode 100644 index 0000000..b4b0713 --- /dev/null +++ b/codigo/AlugarxCompar/style.css @@ -0,0 +1,73 @@ +.container { + max-width: 1200px; + margin: 0 auto; + padding: 20px; + background-color: white; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); + border-radius: 8px; +} + +.navbar { + border-bottom: 1px solid; +} + +.nav-item { + padding-left: 30px; +} + +.form-section { + margin-bottom: 20px; +} + +label { + display: block; + margin-bottom: 5px; + font-weight: bold; +} + +input[type="number"], input[type="text"] { + width: 100%; + padding: 8px; + margin-bottom: 10px; + border: 1px solid #ddd; + border-radius: 4px; + box-sizing: border-box; +} + +#buttonCalcular { + width: 100%; + padding: 10px; + background-color: #494949; + color: white; + border: none; + border-radius: 4px; + cursor: pointer; +} + +#buttonCalcular:hover { + background-color: #000000; +} + +.results-section { + margin-bottom: 20px; +} + +.results-section h2 { + color: #444; + margin-bottom: 10px; +} + +.results-section label { + color: #444; +} + +.results-section input { + font-weight: bold; +} + +/* Responsividade */ +@media (max-width: 768px) { + .form-section, .results-section { + padding: 10px; + } +}