naturalday function
Natural day labeling: today, tomorrow, yesterday; otherwise formatted date. Supports locales 'en' and 'fr'. Basic formatting tokens: yyyy, MM, dd, MMM, MMMM.
Implementation
String naturalday(DateTime date,
{DateTime? now, String locale = 'en', String format = 'yyyy-MM-dd'}) {
final base = now ?? DateTime.now();
final d0 = DateTime(base.year, base.month, base.day);
final d1 = DateTime(date.year, date.month, date.day);
final diffDays = d1.difference(d0).inDays;
final isFr = locale.toLowerCase().startsWith('fr');
if (diffDays == 0) return isFr ? "aujourd'hui" : 'today';
if (diffDays == 1) return isFr ? 'demain' : 'tomorrow';
if (diffDays == -1) return isFr ? 'hier' : 'yesterday';
return _formatDate(d1, format, locale);
}