
- Integrasikan GetStorage untuk menyimpan data counter secara lokal - Tambahkan metode loadCountersFromStorage di CounterService - Perbarui model DonaturModel dan StokBantuanModel untuk konsistensi data - Tambahkan properti lastUpdateTime di controller untuk melacak pembaruan data - Perbaiki tampilan dengan menambahkan informasi waktu terakhir update - Optimalkan metode refresh dan update data di berbagai controller
61 lines
1.8 KiB
Dart
61 lines
1.8 KiB
Dart
import 'package:intl/intl.dart';
|
|
|
|
class DateFormatter {
|
|
static String formatDate(DateTime? date,
|
|
{String format = 'dd MMMM yyyy',
|
|
String locale = 'id_ID',
|
|
String defaultValue = '-'}) {
|
|
if (date == null) return defaultValue;
|
|
try {
|
|
return DateFormat(format, locale).format(date);
|
|
} catch (e) {
|
|
print('Error formatting date: $e');
|
|
return date.toString().split(' ')[0]; // Fallback to basic format
|
|
}
|
|
}
|
|
|
|
static String formatTime(DateTime? time,
|
|
{String format = 'HH:mm',
|
|
String locale = 'id_ID',
|
|
String defaultValue = '-'}) {
|
|
if (time == null) return defaultValue;
|
|
try {
|
|
return DateFormat(format, locale).format(time);
|
|
} catch (e) {
|
|
print('Error formatting time: $e');
|
|
return time
|
|
.toString()
|
|
.split(' ')[1]
|
|
.substring(0, 5); // Fallback to basic format
|
|
}
|
|
}
|
|
|
|
static String formatDateTime(DateTime? dateTime,
|
|
{String format = 'dd MMMM yyyy HH:mm',
|
|
String locale = 'id_ID',
|
|
String defaultValue = '-'}) {
|
|
if (dateTime == null) return defaultValue;
|
|
try {
|
|
return DateFormat(format, locale).format(dateTime);
|
|
} catch (e) {
|
|
print('Error formatting date time: $e');
|
|
return dateTime.toString().split('.')[0]; // Fallback to basic format
|
|
}
|
|
}
|
|
|
|
static String formatNumber(num? number,
|
|
{String locale = 'id_ID', String defaultValue = '0'}) {
|
|
if (number == null) return defaultValue;
|
|
try {
|
|
return NumberFormat("#,##0.##", locale).format(number);
|
|
} catch (e) {
|
|
print('Error formatting number: $e');
|
|
return number.toString(); // Fallback to basic format
|
|
}
|
|
}
|
|
|
|
static String formatDateTimeWithHour(DateTime dateTime) {
|
|
return DateFormat('dd MMMM yyyy HH:mm', 'id_ID').format(dateTime);
|
|
}
|
|
}
|