forked from fabioBaraDev/coding_for_security
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path#exercicio 6.py
More file actions
47 lines (41 loc) · 1.18 KB
/
Copy path#exercicio 6.py
File metadata and controls
47 lines (41 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#exercicio 6
testes = [
(29, 2, 2024),
(29, 2, 2023),
(31, 4, 2025),
(15, 8, 2025),
(29, 2, 2000),
(29, 2, 1900),
(5, 13, 2025),
(0, 6, 2025)
]
for dia, mes, ano in testes:
print(f"Data: {dia:02d}/{mes:02d}/{ano}")
if (ano % 4 == 0 and ano % 100 != 0) or (ano % 400 == 0):
bissexto = True
print("Ano bissexto: Sim")
else:
bissexto = False
print("Ano bissexto: Não")
if mes < 1 or mes > 12:
print("Data inválida: mês inválido")
else:
if mes == 2:
if bissexto:
max_dias = 29
else:
max_dias = 28
elif mes == 4 or mes == 6 or mes == 9 or mes == 11:
max_dias = 30
else:
max_dias = 31
if dia < 1:
print("Data inválida: dia inválido")
elif dia > max_dias:
if mes == 2:
print(f"Data inválida: fevereiro de {ano} tem apenas {max_dias} dias")
else:
print(f"Data inválida: o mês {mes} tem apenas {max_dias} dias")
else:
print("Data válida!")
print()