parseDate method

DateTime? parseDate(
  1. String rawDate
)

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;
}