Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<conio.h> //getch()
- #define true 1
- #define false 0
- /*Abril, Junio, Septiembre y Noviembre. = 30 dias
- Enero, Marzo, Mayo, Julio, Agosto, Octubre y Diciembre = 31 dias
- Febrero = 28 dias excepto ano bisiesto que son 29 dias
- */
- /*Casos
- 1.- mes == Febrero y dias mayor a 28
- 2.- mes = Abril, Junio, Septiembre y Noviembre && dia mayor a 30
- 3.- Falta implementar ano bisiesto para el mes de febrero.
- */
- struct MonthDay{
- char *mes;
- char dia;
- }mesdia[]={ // 12 elementos MonthDay
- {"Enero",31}, //0
- {"Febrero",28},
- {"Marzo",31}, //2
- {"Abril",30},
- {"Mayo",31}, //4
- {"Junio",30},
- {"Julio",31}, //6
- {"Agosto",31}, //7
- {"Septiembre",30},
- {"Octubre",31}, //9
- {"Noviembre",30},
- {"Diciembre",31}}; //11
- //#define N_MESES sizeof(mesdia)/sizeof(mesdia[0])
- enum Mes {ENERO = 1, FEBRERO, MARZO, ABRIL, MAYO, JUNIO,JULIO,AGOSTO,SEPTIEMBRE,
- OCTUBRE,NOVIEMBRE, DICIEMBRE};
- int main (int argc, char* argv[]){
- int mes,dia,ano;
- short seguir_dia;
- short seguir_mes;
- do{
- printf("DIGITE EL NUMERO DEL MES QUE DESEA VER\n");
- scanf("%i", &mes);
- seguir_mes = false;
- if(mes<=0 || mes>12){
- printf("El numero del mes ingresado no es valido\n");
- seguir_mes = true;
- }
- }while(seguir_mes);
- do{
- printf("DIGITE EL DIA DEL RESPECTIVO MES\n");
- scanf("%i", &dia);
- seguir_dia = false;
- if(dia<1 || dia>31){ // dia inexistente
- printf("El dia %i indicado no es valido\n",dia);
- seguir_dia = true;
- }else if(mes==FEBRERO && dia>28){
- printf("El dia %i para el mes %i no es valido\n",dia,mes);
- seguir_dia = true;
- }else if((mes==ABRIL||mes==JUNIO||mes==SEPTIEMBRE||mes==NOVIEMBRE)&&dia==31){
- printf("El dia %i para el mes %i no es valido\n",dia,mes);
- seguir_dia = true;
- }
- }while(seguir_dia);
- do{
- printf("DIGITE EL ANO DEL RESPECTIVO MES\n");
- scanf("%i", &ano);
- if(ano<0)
- printf("El numero del ano ingresado no es valido\n");
- }while(ano<0);
- printf("La fecha indicada es: %i de %s del %i \n",dia,mesdia[mes-1].mes,ano);
- getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement