feat: add validated semester and lesson calculations

This commit is contained in:
Codex
2026-10-12 23:13:02 +08:00
parent 36d18f029f
commit ae8e347e49
36 changed files with 1522 additions and 1 deletions
+12
View File
@@ -0,0 +1,12 @@
class Semester {
Semester({required DateTime startDate, required this.totalWeeks})
: startDate = DateTime.utc(startDate.year, startDate.month, startDate.day) {
if (totalWeeks < 1 || totalWeeks > 30) {
throw ArgumentError('学期周数应为 1–30');
}
}
DateTime get firstMonday =>
startDate.subtract(Duration(days: startDate.weekday - 1));
final DateTime startDate;
final int totalWeeks;
}