calendar method

String calendar({
  1. Hora? referenceDate,
  2. CalendarConfig config = CalendarConfig.defaultConfig,
})

Formats this date in calendar style relative to a reference date.

Implementation

String calendar({
  Hora? referenceDate,
  CalendarConfig config = CalendarConfig.defaultConfig,
}) {
  final ref = referenceDate ?? Hora.now(locale: locale);
  final diffDays = startOf(TemporalUnit.day)
      .diff(ref.startOf(TemporalUnit.day), TemporalUnit.day)
      .toInt();

  String formatStr;
  if (diffDays == 0) {
    formatStr = config.sameDay;
  } else if (diffDays == 1) {
    formatStr = config.nextDay;
  } else if (diffDays == -1) {
    formatStr = config.lastDay;
  } else if (diffDays > 1 && diffDays < 7) {
    formatStr = config.nextWeek;
  } else if (diffDays < -1 && diffDays > -7) {
    formatStr = config.lastWeek;
  } else {
    formatStr = config.sameElse;
  }

  return _formatCalendar(formatStr);
}