getDateRange function
Gets all dates between two dates (inclusive).
start - The start date of the range.
end - The end date of the range.
Returns a list of DateTime objects for each day in the range. Time components are normalized to 00:00:00.
Example:
final start = DateTime(2024, 1, 15);
final end = DateTime(2024, 1, 18);
final range = getDateRange(start, end);
print(range.length); // 4 (includes both start and end)
Implementation
List<DateTime> getDateRange(DateTime start, DateTime end) {
final days = <DateTime>[];
var current = DateTime(start.year, start.month, start.day);
final endDate = DateTime(end.year, end.month, end.day);
while (!current.isAfter(endDate)) {
days.add(current);
current = current.add(const Duration(days: 1));
}
return days;
}