struct TimetablePage { string name() const; term_type term; bool alternate; unsigned week; vector<CourseBlocks> courses; };
Represents one "page" of a timetable. One page of a timetable contains information for one term (Fall or Spring), and if there are alternate-week sections in the timetable, just one of the alternating weeks. It follows that a whole timetable consists of two pages if there are no alternate-week sections ('Fall' and 'Spring'), or four pages if there are ('Fall week 1', 'Fall week 2', 'Spring week 1', and 'Spring week 2').
string name() const;
Returns a descriptive name for the timetable page, e.g. "Fall Term" or "Spring Term, Week 1".
term_type term;
The term (Fall or Spring) to which this timetable page applies.
bool alternate;
Whether or not this timetable contains alternate-week sections.
unsigned week;
If this timetable contains alternate-week sections, the week (1 or 2) to which this page applies. If the timetable does not contain alternate-week sections, this field is unused.
vector<CourseBlocks> courses;
Time blocks in this timetable page for each course being taken.