Jvsierra

Validador de Datas em C

Apr 8th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.46 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.  
  5.   int dia, mes, ano;
  6.  
  7.   printf("Digite o dia: \n");
  8.   scanf("%d", &dia);
  9.   printf("Digite o mes: \n");
  10.   scanf("%d", &mes);
  11.   printf("Digite o ano: \n");
  12.   scanf("%d", &ano);
  13.  
  14.   if((dia > 31 || dia < 1) || (mes > 12 || mes < 1) || ano < 0){ /* Se o usuario entrar um dia maior que 31 ou menor que 1
  15.     ou um mês maior que 12 ou menor que um, ou um ano negativo */
  16.     printf("A data e invalida.\n");
  17.   }else{
  18.     if (mes == 2){
  19.       //Se o mês for fevereiro
  20.       if(ano % 400 == 0 || (ano % 4 == 0 && ano % 100 != 0)){
  21.         //Se o ano for bissexto
  22.         if (dia <= 29) {
  23.           printf("Data valida\n");
  24.         }else{
  25.           printf("Data invalida\n");
  26.         }
  27.       }else if(dia > 29){
  28.           //Se o mês for fevereiro e o dia for maior que 29
  29.           printf("Data invalida\n");
  30.       }else{
  31.         //Se o ano NÃO for bissexto
  32.         if (dia > 28) {
  33.           printf("Data invalida.\n");
  34.         }else{
  35.           printf("Data valida\n");
  36.         }
  37.       }
  38.     }else if(mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12){
  39.       //Se o mês tiver 31 dias
  40.       if(dia > 31){
  41.         printf("Data invalida.\n");
  42.       }else{
  43.         printf("Data valida.\n");
  44.       }
  45.     }else{
  46.       //Se o mês tiver 30 dias
  47.       if (dia > 30) {
  48.         printf("Data invalida.\n");
  49.       }else{
  50.         printf("Data valida.\n");
  51.       }
  52.     }
  53.   }
  54.  
  55.   return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment