#include <iostream>
#include "error.h"
using namespace std;
bool is_digit(char c) {
return '0' <= c && c <= '9';
}
bool legal_C(char c) { return c == '0' || c == '1'; }
bool legal_YY(char a, char b) { return is_digit(a) && is_digit(b); }
bool legal_S(char c) { return c == '1' || c == '4' || c == '7'; }
bool is_cyys(const string& s) {
return s.size() == 4
&& legal_C(s[0])
&& legal_YY(s[1], s[2])
&& legal_S(s[3]);
}
string get_semester(const string& cyys) {
if (!is_cyys(cyys)) error("invalid semester code");
char sem = cyys[3];
if (sem == '1') return "Spring";
if (sem == '4') return "Summer";
if (sem == '7') return "Fall";
error("invalid semester code");
return ""; // should never get here
}
string get_year(const string& cyys) {
if (!is_cyys(cyys)) error("invalid semester code");
string yy = cyys.substr(1, 2);
if (cyys[0] == '0') {
return "19" + yy;
} else {
return "20" + yy;
}
}
string english_cyys(const string& cyys) {
if (!is_cyys(cyys)) error("invalid semester code");
return get_semester(cyys) + " " + get_year(cyys);
}