parseDate method
Implementation
DateTime? parseDate(String rawDate) {
rawDate = rawDate.replaceAll(RegExp(r'(st|nd|rd|th)'), '').trim();
final formats = ['MMM d', 'dd/MM', 'MM/dd'];
for (var format in formats) {
try {
return DateFormat(format).parseLoose(rawDate);
} catch (_) {}
}
final weekMatch = RegExp(r'Week (\d+)\s*(Monday|Tuesday|Wednesday|Thursday|Friday)?', caseSensitive: false)
.firstMatch(rawDate);
if (weekMatch != null) {
final week = int.parse(weekMatch.group(1)!);
return DateTime.now().add(Duration(days: (week - 1) * 7));
}
return null;
}