ntutSemesterDateRange function
Returns the approximate date range for an NTUT semester.
The course-semester API exposes only the academic year and term. These boundaries prevent recurring timetable entries from leaking into adjacent semesters while the calendar supplies the exact instructional dates.
Implementation
CourseScheduleDateRange ntutSemesterDateRange({
required int year,
required int term,
}) {
final adYear = year + 1911;
return switch (term) {
0 => (start: DateTime(adYear, 7, 1), end: DateTime(adYear, 8, 1)),
1 => (start: DateTime(adYear, 8, 1), end: DateTime(adYear + 1, 2, 1)),
2 => (start: DateTime(adYear + 1, 2, 1), end: DateTime(adYear + 1, 8, 1)),
3 => (start: DateTime(adYear + 1, 7, 1), end: DateTime(adYear + 1, 9, 1)),
_ => (start: DateTime(adYear, 8, 1), end: DateTime(adYear + 1, 2, 1)),
};
}