/// Kurze Datums-/Zeitangaben für Listen (deutsch). library; /// Zeit in der Chatliste: heute „14:05“, gestern „Gestern“, diese Woche der /// Wochentag, sonst das Datum. String chatListTime(DateTime t, {DateTime? now}) { final n = now ?? DateTime.now(); final today = DateTime(n.year, n.month, n.day); final day = DateTime(t.year, t.month, t.day); // Über Stunden runden: an Zeitumstellungs-Tagen hat ein Tag 23/25 Stunden, // inDays würde dann „gestern“ als „heute“ zählen. final diff = (today.difference(day).inHours / 24).round(); if (diff <= 0) { return '${t.hour.toString().padLeft(2, '0')}:' '${t.minute.toString().padLeft(2, '0')}'; } if (diff == 1) return 'Gestern'; if (diff < 7) { const days = ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So']; return days[t.weekday - 1]; } return '${t.day.toString().padLeft(2, '0')}.' '${t.month.toString().padLeft(2, '0')}.' '${(t.year % 100).toString().padLeft(2, '0')}'; }