toReadableSimpleString method

String toReadableSimpleString()

Implementation

String toReadableSimpleString() {
  // eg: 27th july
  // eg: 27th july 2021 ( year is not shown if it is current year)

  final today = DateTime.now();
  final isCurrentYear = today.year == year;
  final isCurrentMonth = today.month == month;
  final isCurrentDay = today.day == day;

  final dayString = toNumberText(day);
  final monthString = getShortMonthText(month);
  final yearString = isCurrentYear ? '' : ' $year';

  final isLastDayOfMonth = day == DateTime(year, month + 1, 0).day;

  if (isCurrentDay && isCurrentMonth && isCurrentYear) {
    return 'today';
  }

  if (isCurrentMonth && isCurrentYear && isLastDayOfMonth) {
    return 'this month';
  }

  return '$dayString $monthString$yearString';
}