Implementation
List<DateRange> get lastFourWeeks {
var mondayThisWeek = this;
while (mondayThisWeek.weekday != DateTime.monday) {
mondayThisWeek = mondayThisWeek.subtract(const Duration(days: 1));
}
final monday = mondayThisWeek.thisDayFirstSecond;
final sunday19Nov2023 = DateTime(
mondayThisWeek.year, mondayThisWeek.month, mondayThisWeek.day + 6)
.thisDayLastSecond;
final thisWeek = DateRange(monday, sunday19Nov2023);
final lastWeek = DateRange(monday.subtract(Duration(days: 7)),
sunday19Nov2023.subtract(Duration(days: 7)));
final twoWeeksAgo = DateRange(monday.subtract(Duration(days: 14)),
sunday19Nov2023.subtract(Duration(days: 14)));
final threeWeeksAgo = DateRange(monday.subtract(Duration(days: 21)),
sunday19Nov2023.subtract(Duration(days: 21)));
return [thisWeek, lastWeek, twoWeeksAgo, threeWeeksAgo];
}