toDateString method

String toDateString(
  1. {bool shorten = true,
  2. bool useAdverbs = false}
)

Implementation

String toDateString({bool shorten = true, bool useAdverbs = false}) {
  if (useAdverbs) {
    final now = DateTime.now();
    final today = DateTime(now.year, now.month, now.day);
    final inputDate = DateTime(year, month, day);

    return switch (inputDate) {
      _ when inputDate == today => "time_adverb.today".i18n(),
      _ when inputDate == today.subtract(const Duration(days: 1)) => "time_adverb.yesterday".i18n(),
      _ when inputDate == today.add(const Duration(days: 1)) => "time_adverb.tomorrow".i18n(),
      _ => toDateString(shorten: shorten),
    };
  }
  return "$day ${switch (month) {
    DateTime.january => shorten ? "acronym.months.january".i18n() : "months.january".i18n(),
    DateTime.february => shorten ? "acronym.months.february".i18n() : "months.february".i18n(),
    DateTime.march => shorten ? "acronym.months.march".i18n() : "months.march".i18n(),
    DateTime.april => shorten ? "acronym.months.april".i18n() : "months.april".i18n(),
    DateTime.may => shorten ? "acronym.months.may".i18n() : "months.may".i18n(),
    DateTime.june => shorten ? "acronym.months.june".i18n() : "months.june".i18n(),
    DateTime.july => shorten ? "acronym.months.july".i18n() : "months.july".i18n(),
    DateTime.august => shorten ? "acronym.months.august".i18n() : "months.august".i18n(),
    DateTime.september => shorten ? "acronym.months.september".i18n() : "months.september".i18n(),
    DateTime.october => shorten ? "acronym.months.october".i18n() : "months.october".i18n(),
    DateTime.november => shorten ? "acronym.months.november".i18n() : "months.november".i18n(),
    DateTime.december => shorten ? "acronym.months.december".i18n() : "months.december".i18n(),
    _ => "error".i18n()
  }} $year";
}