int ifLeapYear(int y) {
return ( y%4==0 && ( y%100!=0 || y%400==0 ) );
}
int getMonthDays1 (int m, int y) {
int days;
if (m==1) days=31;
else if (m==2) days=28+ifLeapYear(y);
else if (m==3) days=31;
else if (m==4) days=30;
else if (m==5) days=31;
else if (m==6) days=30;
else if (m==7) days=31;
else if (m==8) days=31;
else if (m==9) days=30;
else if (m==10) days=31;
else if (m==11) days=30;
else if (m==12) days=31;
else days=-1;
return(days);
}
int getMonthDays2 (int m, int y) {
if (m==1) return(31);
if (m==2) return(28+ifLeapYear(y));
if (m==3) return(31);
if (m==4) return(30);
if (m==5) return(31);
if (m==6) return(30);
if (m==7) return(31);
if (m==8) return(31);
if (m==9) return(30);
if (m==10) return(31);
if (m==11) return(30);
if (m==12) return(31);
return(-1);
}
int getMonthDays3 (int m, int y) {
int days;
if (m==1||m==3||m==5||m==7||m==8||m==10||m==12)
days=31;
else if (m==4||m==6||m==9||m==11)
days=30;
else if (m==2)
days=28+ifLeapYear(y);
else
days=1;
return(days);
}
int getMonthDays4 (int m, int y) {
int days;
switch (m) {
case 1: days=31; break;
case 2: days=28+ifLeapYear(y); break;
case 3: days=31; break;
case 4: days=30; break;
case 5: days=31; break;
case 6: days=30; break;
case 7: days=31; break;
case 8: days=31; break;
case 9: days=30; break;
case 10: days=31; break;
case 11: days=30; break;
case 12: days=31; break;
default: days=-1;
}
return(days);
}
int getMonthDays5 (int m, int y) {
int days;
switch (m) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: days=31; break;
case 2: days=28+ifLeapYear(y); break;
case 4:
case 6:
case 9:
case 11: days=30; break;
default: days=-1;
}
return(days);
}
int getMonthDays6 (int m, int y) {
switch (m) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: return(31);
case 2: return(28+ifLeapYear(y));
case 4:
case 6:
case 9:
case 11: return(30);
default: return(-1);
}
}
int getMonthDays7 (int m, int y) {
const char mdays[13] = {-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int days = -1;
if (m<0 || m>12) days=-1;
else if (m==2) days=mdays[m]+ifLeapYear(y);
else days=mdays[m];
return(days);
}