calendar method
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);
}