int dia1, mes1, ano1, dia2, mes2, ano2; int dataValida1, dataValida2, anoValido; int mes28, mes30, mes31; /*entrada das informações via teclado*/ printf("Usuario deve informar duas datas(Dia/Mes/Ano):\n\n"); printf("Exemplo 20/3/2011\n\n"); printf("Data valida: = 1\n\n"); printf("Data invalida: = 0\n\n"); printf("Informe a primeira data:\n\n"); printf("Digite o dia: "); scanf("%d", &dia1); printf("\n"); printf("Digite o mes: "); scanf("%d", &mes1); printf("\n"); printf("Digite o ano: "); scanf("%d", &ano1); printf("\n"); /*Obtenção dos calculos*/ /*verificando se o ano da primeira data é valido*/ anoValido = (ano1 != 0); /*Verificando o mes com 28 dias*/ mes28 = ((dia1 >= 1 && dia1 <= 28) && ((mes1 == 2))) && anoValido; /*Verificando os meses com 30 dias*/ mes30 = ((dia1 >= 1 && dia1 <= 30) && ((mes1 == 4 || mes1 == 6 || mes1 == 9 || mes1 == 11))) && anoValido; /*Verificando os meses com 31 dias*/ mes31 = ((dia1 >= 1 && dia1 <= 31) && ((mes1 == 1 || mes1 == 3 || mes1 == 5 || mes1 == 7 || mes1 == 8 || mes1 == 10 || mes1 == 12))) && anoValido; dataValida1 = mes28 || mes30 || mes31; printf("Informe a segunda data:\n\n"); printf("Digite o dia: "); scanf("%d", &dia2); printf("\n"); printf("Digite o mes: "); scanf("%d", &mes2); printf("\n"); printf("Digite o ano: "); scanf("%d", &ano2); printf("\n"); /*Verificando se o ano da segunda data é valido*/ anoValido = (ano2 != 0); mes28 = ((dia2 >= 1 && dia2 <= 28) && ((mes2 == 2))) && anoValido; mes30 = ((dia2 >= 1 && dia2 <= 30) && ((mes2 == 4 || mes2 == 6 || mes2 == 9 || mes2 == 11))) && anoValido; mes31 = ((dia2 >= 1 && dia2 <= 31) && ((mes2 == 1 || mes2 == 3 || mes2 == 5 || mes2 == 7 || mes2 == 8 || mes2 == 10 || mes2 == 12))) && anoValido; dataValida2 = mes28 || mes30 || mes31; printf("Verificando a primeira data %d/%d/%d.....: %d\n\n", dia1, mes1, ano1, dataValida1); printf("Verificando a segunda data %d/%d/%d.....: %d\n\n", dia2, mes2, ano2, dataValida2);