Skip to content

Commit d24ef2f

Browse files
committed
Hoje estudei os conceitos de manipulação de datas onde eu pude enteder os principis métodos para obter o dia, mê e ano assim como os método para alteração, realizei dois exemplos que consiste em um sistema simples para calcular o ano de nascimento de uma pessoa, e um sistema um pouco mais intermediário em manipulação de datas que é foi o programa Caixa da loja que calcula o juros e multa.
1 parent 4187fac commit d24ef2f

File tree

4 files changed

+114
-0
lines changed

4 files changed

+114
-0
lines changed

cap07/ex7_7.html

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<!DOCTYPE html>
2+
<html lang="pt-br">
3+
4+
<head>
5+
<meta charset="UTF-8">
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
7+
<title>Programa calculo ano e nascimento</title>
8+
</head>
9+
10+
<body>
11+
<script>
12+
const anoAtual = new Date().getFullYear();
13+
const idade = prompt(`Quantos anos você comemora em ${anoAtual}?`)
14+
const anoNasci = anoAtual - idade
15+
alert(`Ah.. Então você nasceu em ${anoNasci}`)
16+
</script>
17+
18+
</body>
19+
20+
</html>
21+
22+
<!-- Já para calcular a diferença de dias entre duas datas, é necessário entender uma importante particularidade de
23+
linguagem JavaScript em relação ao objetos Date: as datas JavaScript são armezenadas internamente com um valor númerico
24+
. Assim, uma data também pode ser criada ou calculada a partir de um número expresso em milissegundos, a contar do dia 1 de
25+
Janeiro de 1970.
26+
27+
Desa forma, se quisermos obter a diferença de dias entre duas datas, podemos subtrair as datas e dividir o valor por 86400000,
28+
que é o número de milissegundos de um dia: 24horas * 60minutos *60 Segundos * 1000 milissegundos -->

cap07/ex7_8.html

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<!DOCTYPE html>
2+
<html lang="pt-br">
3+
4+
<head>
5+
<meta charset="UTF-8">
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
7+
<link rel="stylesheet" href="css/style.css">
8+
<title>Programa caixa da loja</title>
9+
<!--O programa deve ler a data de vencimento e o valor de uma conta. Caso
10+
a conta esteja em atraso, o programa deve calcular o valor de uma conta. Caso a
11+
conta esteja em atraso, o programa deve calcular o valor de uma multa e dos juros
12+
a serem acrescentados ao valor total.-->
13+
</head>
14+
15+
<body>
16+
<h1>PROGRAMA CAIXA DA LOJA</h1>
17+
<form>
18+
<p>Data de vencimento:
19+
<input type="date" id="inDataVenc" autofocus required>
20+
</p>
21+
22+
<p>Valor da conta R$:
23+
<input type="number" id="inValor" min="0" step="0.01" required>
24+
<input type="submit" value="Calcular multa e juros">
25+
</p>
26+
27+
<p>Valor da multa:
28+
<input type="number" id="outMulta" readonly>
29+
</p>
30+
31+
<p>Valor da Juros R$:
32+
<input type="number" id="outJuros" readonly>
33+
</p>
34+
35+
<P>Total a pagar R$...:
36+
<input type="number" id="outTotal" readonly>
37+
<input type="reset" value="Nova Conta">
38+
</P>
39+
</form>
40+
<h3></h3>
41+
42+
<script src="js/ex7_8.js"></script>
43+
</body>
44+
45+
</html>

cap07/js/dateexemplo.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
const hoje = new Date();
2+
const amanha = new Date();
3+
const dia = amanha.getDate();
4+
amanha.setDate(dia + 1);
5+
console.log(`Hoje: ${hoje}\n Amanhã: ${amanha}`);

cap07/js/ex7_8.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
const frm = document.querySelector("form");
2+
const resp = document.querySelector("h3");
3+
4+
const TAXA_MULTA = 2 / 100; //Multa por atraso
5+
const TAXA_JUROS = 0.33 / 100; //Juros por dia de atraso
6+
7+
frm.addEventListener("submit", (e) => {
8+
e.preventDefault();
9+
10+
const dataVenc = frm.inDataVenc.value;
11+
const valor = Number(frm.inValor.value);
12+
const hoje = new Date(); // Cria variáveis (instancia objetos)
13+
const vencto = new Date(); // do tipo Date()
14+
15+
const partes = dataVenc.split("-"); //Data de vencimento em formato aaaa-mm-dd
16+
vencto.setDate(Number(partes[2]));
17+
vencto.setMonth(Number(partes[1]) - 1);
18+
vencto.setFullYear(Number(partes[0]));
19+
20+
const atraso = hoje - vencto; // Calcula a diferença de dias entre datas (em ms)
21+
let multa = 0;
22+
let juros = 0;
23+
24+
// Converte ms do atraso em dias (1 dia = 24h x 60min x 1000ms: 86400000)
25+
if (atraso > 0) {
26+
const dias = atraso / 86400000;
27+
multa = valor * TAXA_MULTA; //Calcula multa e juros
28+
juros = valor * TAXA_JUROS * dias;
29+
}
30+
31+
const total = valor + multa + juros;
32+
33+
frm.outMulta.value = multa.toFixed(2);
34+
frm.outJuros.value = juros.toFixed(2);
35+
frm.outTotal.value = total.toFixed(2);
36+
});

0 commit comments

Comments
 (0)