Pearoo 7b517b333a Revert "Rename everything filcnaplo-related to refilc"
This reverts commit d1a9625d93f30c19068f52fa9848a8266d8d97e7.
2023-09-19 18:16:57 +02:00

42 lines
1.3 KiB
Dart

import 'package:filcnaplo_kreta_api/controllers/timetable_controller.dart';
class Week {
DateTime start;
DateTime end;
Week({required this.start, required this.end});
factory Week.current() => Week.fromDate(DateTime.now());
factory Week.fromId(int id) {
DateTime _now = TimetableController.getSchoolYearStart().add(Duration(days: id * DateTime.daysPerWeek));
DateTime now = DateTime(_now.year, _now.month, _now.day);
return Week(
start: now.subtract(Duration(days: now.weekday - 1)),
end: now.add(Duration(days: DateTime.daysPerWeek - now.weekday)),
);
}
factory Week.fromDate(DateTime date) {
// fix #32
DateTime _date = DateTime(date.year, date.month, date.day);
return Week(
start: _date.subtract(Duration(days: _date.weekday - 1)),
end: _date.add(Duration(days: DateTime.daysPerWeek - _date.weekday)),
);
}
Week next() => Week.fromDate(start.add(const Duration(days: 8)));
int get id => -(TimetableController.getSchoolYearStart().difference(start).inDays / DateTime.daysPerWeek).floor();
@override
String toString() => "Week(start: $start, end: $end)";
@override
bool operator ==(Object other) => other is Week && id == other.id;
@override
int get hashCode => id;
}