24 lines
855 B
Dart
24 lines
855 B
Dart
/// Formaterar ett DateTime-objekt som YYYY-MM-DD.
|
|
/// Om [dt] är null returneras [fallback] (default: tom sträng).
|
|
String formatDate(DateTime? dt, {String fallback = ''}) {
|
|
if (dt == null) return fallback;
|
|
return '${dt.year}-'
|
|
'${dt.month.toString().padLeft(2, '0')}-'
|
|
'${dt.day.toString().padLeft(2, '0')}';
|
|
}
|
|
|
|
/// Parsar en ISO-datumsträng och formaterar som YYYY-MM-DD.
|
|
/// Om strängen inte är parsbar returneras den oförändrad.
|
|
String formatDateString(String iso) {
|
|
try {
|
|
return formatDate(DateTime.parse(iso), fallback: iso);
|
|
} catch (_) {
|
|
return iso;
|
|
}
|
|
}
|
|
|
|
/// Formaterar ett tal som heltal om det inte har decimaler, annars med decimaler.
|
|
/// Exempel: 2.0 → "2", 1.5 → "1.5"
|
|
String formatQuantity(double v) =>
|
|
v == v.roundToDouble() ? v.toStringAsFixed(0) : v.toStringAsFixed(1);
|