Escreva um algoritmo/programa que leia dois números inteiros correspondentes ao dia e mês
de uma data qualquer e determine se esta é uma data válida. Considere que fevereiro sempre
tem 28 dias.
Respostas
Resposta:
Linguagem Javascript:
let months = {
1: 31, 2: 28, 3: 31,
4: 30, 5: 31, 6: 30,
7: 31, 8: 31, 9: 30,
10: 31, 11: 30, 12: 31
}
function verify(day, month){
let max = months[month];
if(!max) return false;
return day <= max && day > 0;
}
Linguagem C/C++:
#include <stdio.h>
int months[12] = {
31, 28, 31, 30,
31, 30, 31, 31,
30, 31, 30, 31
};
int valid(int day, int month){
int vmonth = month > 0 && month <= 12;
if(!vmonth) return 0;
int max = months[month-1];
return day <= max && day > 0;
}
int main() {
int day, month;
printf("Insira o dia: ");
scanf("%i", &day);
printf("Insira o mes: ");
scanf("%i", &month);
char *status = valid(day,month) ? "valida" : "invalida";
printf("\nEsta data e %s\n", status);
return 0;
}
Explicação:
Exemplo de chamada Javascript:
console.log(verify(29, 2));
C/C++ não precisa chamar, basta executar