-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexercício16.c
95 lines (83 loc) · 2.01 KB
/
exercício16.c
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <stdio.h>
/*
Escreva uma funcao que receba dois registros do tipo data, cada um representando uma data valida, e devolva o
numero de dias que decorreram entre as duas datas.
*/
typedef struct data {
int dia;
} x, y;
x diasx;
x conversor1(int ano1, int mes1, int dia1) {
diasx.dia = ano1*365 - dia1 - mes1*30;
return diasx;
}
y diasy;
y conversor(int ano2, int mes2, int dia2) {
diasy.dia = ano2*365 - dia2 - mes2*30;
return diasy;
}
int main() {
int dia1, mes1, ano1;
printf("Escolha uma data\n");
printf("ano: ");
scanf("%d", &ano1);
printf("mes: ");
scanf("%d", &mes1);
if (mes1 < 1 || mes1 > 12) {
printf("Mes invalido");
}
else {
printf("dia: ");
scanf("%d", &dia1);
if(dia1 < 1 || dia1 > 31){
printf("Dia inv�lido");
} else if (mes1 == 2) {
if((ano1 % 4 == 0) && (ano1 % 100 != 0) || (ano1 % 400 == 0)){
if(dia1 <1 || dia1 > 29){
printf("Dia inv�lido");
}
} else if(dia1 < 1 || dia1 > 28){
printf("Dia inv�lido");
}
} else if( mes1 == 4 || mes1 == 6 || mes1 == 9 || mes1 == 11) {
if (dia1 < 1 || dia1 > 30) {
printf("Dia inv�lido");
}
}
}
int dia2, mes2, ano2;
printf("Escolha outra data\n");
printf("ano: ");
scanf("%d", &ano2);
printf("mes: ");
scanf("%d", &mes2);
if (mes2 < 1 || mes2 > 12) {
printf("Mes invalido");
}
else {
printf("dia: ");
scanf("%d", &dia2);
if(dia2 < 1 || dia2 > 31){
printf("Dia inv�lido");
} else if (mes2 == 2) {
if((ano2 % 4 == 0) && (ano2 % 100 != 0) || (ano2 % 400 == 0)){
if(dia2 <1 || dia2 > 29){
printf("Dia inv�lido");
}
} else if(dia2 < 1 || dia2 > 28){
printf("Dia inv�lido");
}
} else if( mes2 == 4 || mes2 == 6 || mes2 == 9 || mes2 == 11) {
if (dia2 < 1 || dia2 > 30) {
printf("Dia inv�lido");
}
}
}
conversor1(ano1, mes1, dia1);
conversor(ano2, mes2, dia2);
float decorrente;
decorrente = diasx.dia - diasy.dia;
printf("\nOs dias decorrentes sao: %f", decorrente);
return 0;
}
//Matheus Ramos Esteves; Turma ID