formatDateAsDay static method

String formatDateAsDay(
  1. DateTime? tm
)

Implementation

static String formatDateAsDay(DateTime? tm) {
  if (tm == null) {
    debugPrint('formatDateAsDay | tm: $tm');
    return '';
  }

  final DateTime today = DateTime.now();
  // Duration oneDay = new Duration(days: 1);
  const Duration twoDay = Duration(days: 2);
  debugPrint('Today: ${today.day} and TM day: ${tm.day}');
  // int dateDiff = today.day - tm.day;

  const Duration oneWeek = Duration(days: 7);
  String? month;
  switch (tm.month) {
    case 1:
      month = "Jan";
      break;
    case 2:
      month = "Feb";
      break;
    case 3:
      month = "Mar";
      break;
    case 4:
      month = "Apr";
      break;
    case 5:
      month = "May";
      break;
    case 6:
      month = "Jun";
      break;
    case 7:
      month = "Jul";
      break;
    case 8:
      month = "Aug";
      break;
    case 9:
      month = "Sep";
      break;
    case 10:
      month = "Oct";
      break;
    case 11:
      month = "Nov";
      break;
    case 12:
      month = "Dec";
      break;
  }

  final Duration difference = today.difference(tm);
  debugPrint('Today: ${today.day} and TM day: ${tm.day}');

  if (today.day == tm.day) {
    // return "Today";
    return "";
  } else if (difference.compareTo(twoDay) < 1) {
    return "Yesterday";
  } else if (difference.compareTo(oneWeek) < 1) {
    switch (tm.weekday) {
      case 1:
        return "Mon";
      case 2:
        return "Tue";
      case 3:
        return "Wed";
      case 4:
        return "Thu";
      case 5:
        return "Fri";
      case 6:
        return "Sat";
      case 7:
        return "Sun";
    }
  } else if (tm.year == today.year) {
    return '${tm.day} $month';
  } else {
    return '${tm.day} $month ${tm.year % 100}';
    // return '${tm.day} $month ${tm.year % 100}';
  }
  return "";
}