Files
apskel-owner-flutter/lib/presentation/pages/profit_sharing/widgets/period_label.dart
T
efrilm 2e4c77888e
Build & Deploy iOS to TestFlight / build-and-deploy (push) Canceled after 0s
feat: profit sharing
2026-08-21 22:31:54 +07:00

32 lines
1.0 KiB
Dart

import 'package:intl/intl.dart';
/// Label rentang periode ringkas, contoh: "27 Jul - 2 Agu 2026".
String formatPeriodLabel(DateTime from, DateTime to) {
final dayMonth = DateFormat('d MMM', 'id_ID');
final dayMonthYear = DateFormat('d MMM yyyy', 'id_ID');
if (from.year == to.year && from.month == to.month && from.day == to.day) {
return dayMonthYear.format(from);
}
if (from.year == to.year) {
return '${dayMonth.format(from)} - ${dayMonthYear.format(to)}';
}
return '${dayMonthYear.format(from)} - ${dayMonthYear.format(to)}';
}
/// Label bulan dari format API "2026-08" menjadi "Agustus 2026".
String formatMonthLabel(String month, DateTime fallback) {
final parts = month.split('-');
if (parts.length == 2) {
final year = int.tryParse(parts[0]);
final monthNumber = int.tryParse(parts[1]);
if (year != null && monthNumber != null) {
return DateFormat(
'MMMM yyyy',
'id_ID',
).format(DateTime(year, monthNumber));
}
}
return DateFormat('MMMM yyyy', 'id_ID').format(fallback);
}