int DaysInMonth(int m, int y) // pre: 1 <= m <= 12 (1 = Jan, 2 = Feb, etc.) // y >= 0 // post: return numbers of day in month { switch (m) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if (LeapYear(y)) return 29; else return 28; default: return -1; } } bool LeapYear(int y) // pre: y >= 0 // post: returns true if y is a leap year { if (y % 400 == 0) return true; else if (y % 100 == 0) return false; else if (y % 4 == 0) return true; return false; } int ToInt(const apstring & s) // pre: string s contains only digits // post: returns integer value of string s { int value = 0; for (int i = 0; i < s.length(); i++) { value *= 10; value += s[i] - '0'; } return value; }