diff --git a/codigo/inflacao/inflacao.css b/codigo/inflacao/inflacao.css new file mode 100644 index 0000000..7543bc7 --- /dev/null +++ b/codigo/inflacao/inflacao.css @@ -0,0 +1,63 @@ +.navbar { + border-bottom: 1px solid; +} + + + +.nav-item { + padding-left: 30px; +} + +#bntCalcular{ + background-color: rgb(199, 199, 199); + border: 1px solid; + border-radius: 5px; + width: 90px; + height: 40px; +} + +.form { + display: flex; + flex-direction: column; + align-items: center; +} + +.form .data-field { + width: 100%; + min-height: 3em; + margin-top: 10px; + + + display: flex; + flex-direction: column; + align-items: center; +} + +.form .input { + background-color: #EFEFEF; + border-color: #ACAAAC; + border-style: solid; + border-width: 1px; + min-height: 50px; + border-radius: 5px; + font-size: 17px; + padding: 10px 13px; + max-width: 120px; +} + + +#container-footer { + margin-top: 25px; + padding: 15px; + border-top: 1px solid; +} + +#container-footer > a { + text-decoration: none; + padding-left: 15px; + color: black; +} + +img{ + width: 50px; +} \ No newline at end of file diff --git a/codigo/inflacao/inflacao.html b/codigo/inflacao/inflacao.html new file mode 100644 index 0000000..f570d4f --- /dev/null +++ b/codigo/inflacao/inflacao.html @@ -0,0 +1,144 @@ + + + + + + + + + + Inflação + + + +
+ +
+
+
+

Calculadora de inflação - IPCA

+

Coloque o valor e o período para calcular a correção da inflação acumulada

+
+
+
+
+
+
+ + +
+
+ + +
+
+ +
+ + + + +
+
+
+
+
+ +
+
+ +
+
+ +
+ + + +
+
+
+
+
+ + +
+
+
+
+ +
+
+
+
+ +
+
+
+
+
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/codigo/inflacao/inflacao.js b/codigo/inflacao/inflacao.js new file mode 100644 index 0000000..34ab723 --- /dev/null +++ b/codigo/inflacao/inflacao.js @@ -0,0 +1,92 @@ +window.onload = () => { + + const btnCalcular = document.getElementById("bntCalcular"); + const formulario = document.getElementById("formulario-calc-ipca"); + const telaResultado = document.getElementById("tela"); + + btnCalcular.addEventListener('click', () => { + if (formulario.checkValidity()) { + inflacao(); + } else { + alert("Por favor, preencha todos os campos obrigatórios."); + } + }); + + + function inflacao () { + + let mesInicio = document.getElementById("mesStart").value; + let anoInicio = parseInt(document.getElementById("anoStart").value); + let mesFim = document.getElementById("mesEnd").value; + let anoFim = document.getElementById("anoEnd").value; + let valor = parseFloat(formatarValor(document.getElementById("value").value)); + + + if(mesInicio == "12"){ + anoInicio--; + } + + anoInicio = String(anoInicio) + + let dataInicio = parseInt(anoInicio + mesInicio); + let dataFim = parseInt(anoFim + mesFim); + + console.log(dataInicio) + console.log(dataFim) + + if(dataInicio < 199406){ + telaResultado.innerHTML = `

Estamos usando apenas a moeda real que entrou em circulação após 07/1994, qualquer valor anterior a essa data dará erro

`; + } + else + { + console.log(dataInicio) + console.log(dataFim) + + let indiceinicio; + let indicefim; + + // CÓDIGO QUE EU ACHO QUE VAI DAR CERTO: + fetch(`https://servicodados.ibge.gov.br/api/v1/conjunturais?d=s&user=ibge&t=1737&v=2266&p=${dataInicio}&ng=1(1)&c`) + .then(res => res.json()) + .then(data => { + indiceinicio = data[0].v; + console.log('Índice de início:', indiceinicio); + }) + .catch(error => { + console.error('Erro ao obter o índice de início:', error); + telaResultado.innerHTML = `

Erro ao obter o período inicial

`; + }); + + fetch(`https://servicodados.ibge.gov.br/api/v1/conjunturais?d=s&user=ibge&t=1737&v=2266&p=${dataFim}&ng=1(1)&c`) + .then(res => res.json()) + .then(data => { + indicefim = data[0].v; + console.log('Índice de fim:', indicefim); + if (indiceinicio && indicefim) { + const ipca = calcularIPCA(indiceinicio, indicefim, valor); + console.log("o calculo de ipca é: " + ipca); + telaResultado.innerHTML = `

O valor corrigido pela inflação é: R$ ${ipca.toFixed(2)}

`; + } else { + telaResultado.innerHTML = `

Erro ao obter os índices necessários para o cálculo. Tente novamente

`; + } + }) + .catch(error => { + console.error('Erro ao obter o índice de fim:', error); + telaResultado.innerHTML = `

Erro ao obter o período final

`; + }); + + + console.log("o calculo de ipca é: " +calcularIPCA(indiceinicio,indicefim,valor)) + } + + } + + function calcularIPCA(i1,i2,v){ + return v*(i2/i1); + } + + function formatarValor(valor) { + return valor.replace(/\./g, '').replace(',', '.'); + } + +} \ No newline at end of file diff --git a/codigo/inflacao/logo.png b/codigo/inflacao/logo.png new file mode 100644 index 0000000..f2583f0 Binary files /dev/null and b/codigo/inflacao/logo.png differ