-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path21_data.c
More file actions
61 lines (59 loc) · 1.75 KB
/
21_data.c
File metadata and controls
61 lines (59 loc) · 1.75 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
int d;
int m;
int a;
printf("===== Validar Data =====");
printf("\nInsira o Dia: ");
scanf("%d", &d);
printf("\nInsira o Mês: ");
scanf("%d", &m);
printf("\nInsira o Ano: ");
scanf("%d", &a);
//Teste ano válido
if (a == 0){
printf("\nERRO! Ano Inválido, não existe ano 0.");
return 1;
}
//Teste mês válido
if (m < 1 || m > 12){
printf("\nERRO! Mês Inválido, insira um valor entre de 1 à 12.");
return 2;
}
//------- Teste dias válidos
//Testa dia para fevereiro
if (m == 2){
//Bissexto
if( ((a % 4 == 0) && (a % 100 != 0)) || (a % 400 == 0) ){
if((d>29)||(d<1)){
printf("\nERRO! Dia Inválido, Fevereiro de %d tem 29 dias. Pois é um ano bissexto.",a);
return 66;
}
}
//Normal
else{
if((d>28)||(d<1)){
printf("\nERRO! Dia Inválido, Fevereiro de %d tem 28 dias. Pois não é ano bissexto.",a);
return 65;
}
}
}
//Testa dia para meses de 31 dias
else if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12){
if (d>31||d<1){
printf("\nERRO! Dia Inválido, esse Mês tem no máximo 31 dias.");
return 31;
}
}
//Testa dia para meses de 30 dias
else if (m == 4 || m == 6 || m == 9 || m == 11){
if (d>30||d<1){
printf("\nERRO! Dia Inválido, esse Mês tem no máximo 30 dias.");
return 30;
}
}
printf("\nData Válida %d/%d/%d.",d,m,a);
return 0;
}