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;
    }