#include int ispravan(int godina, int mesec, int dan); int broj_dana(int godina, int mesec); int prestupna(int godina); int main(){ int g, m, d; /* ocekuje se na unosu format: dd.MM.gggg */ scanf("%d.%d.%d", &d,&m, &g); if(ispravan(g,m,d)) printf("Datum je ispravan\n"); else printf("Datum nije ispravan\n"); return 0; } int ispravan(int godina, int mesec, int dan){ if(godina<1) return 0; if(mesec<1 || mesec>12) return 0; if(dan<1 || dan>broj_dana(godina,mesec)) return 0; return 1; } int broj_dana(int godina, int mesec){ int d; switch(mesec){ case 2: if(prestupna(godina)) d=29; else d=28; break; case 1: case 3: case 5: case 7: case 8: case 10: case 12: d = 31; break; default: d=30; } return d; } int prestupna(int godina){ if(godina<1) return -1; return godina%400==0 || (godina%4==0 && godina%100!=0); }