Hi everyone!
This is supposed to take a date in dd/mm/yyyy format from the keyboard and check whether its valid or not.It works for me but just wanted to make it a little shorter(If that's possible) and more readable.
Thanks!Code:#include<iostream> using namespace std; int checkyr(int); int checkmon(int); int checkdd(int,int,int); int main() { int dd=1,mm=1,yyyy=1970; cout<<endl<<"Enter the day:"; cin>>dd; cout<<endl<<"Enter Month:"; cin>>mm; cout<<endl<<"Enter year:"; cin>>yyyy; if(!checkyr(yyyy)) { if(!checkmon(mm)) { if(!checkdd(dd,mm,yyyy)) cout<<endl<<"Date is valid"; } } fflush(stdin); cin.get(); return 0; } int checkyr(int yyyy) { if(yyyy>0) return 0; else { cout<<"\nInvalid Year"; return 1; } } int checkmon(int mm) { if((mm>=1)&&(mm<=12)) return 0; else { cout<<"\nInvalid Month"; return 1; } } int checkdd(int dd,int mm,int yyyy) { int lp=0; if((yyyy%4==0 && yyyy%100!=0)||(yyyy%400==0)) lp=1; if((mm%2==1 && mm<=7)||(mm%2==0 && mm>=8)) { if((dd>=1)&&(dd<=31)) return 0; } if(mm==4||mm==6||mm==9||mm==11) { if((dd>=1)&&(dd<=30)) return 0; } if(mm==2) { switch(lp) { case 0: if((dd>=1)&&(dd<=28)) return 0; break; case 1: if((dd>=1)&&(dd<=29)) return 0; break; } } cout<<endl<<"Invalid Day"; return 1; }


