Originariamente inviato da Janbure
Anche l'altro nel mio topic dava lo stesso problema con i bisestili.
codice:
#include <stdio.h>
int main ()
{
char*nm[]={"gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"};
int gg, mm, aa;
printf("Inserire data nel formato gg/mm/aa: ");
scanf("%d/%d/%d", &gg, &mm, &aa);
bool isLeap=(aa % 4 == 0 && aa % 100 != 0) || aa % 400 == 0;
if((isLeap&&mm==2&&gg>29)||
gg>31||
(!isLeap&&mm==2&&gg>28)||
((mm ==1||mm==4||mm==6||mm==9||mm==11)&&gg>30)){
printf("Data non valida\n");
getchar();getchar();
return 0;
}
printf("%d/%d/%d\n", gg,mm,aa);
printf("%d %s %d\n", gg,nm[mm-1],aa);
getchar();getchar(); getchar();getchar();
return 0;
}