refactored code to encapsulate date formatting

This commit is contained in:
2025-01-29 13:39:49 +01:00
parent 2655779fac
commit 7b7e3e9fe0
6 changed files with 85 additions and 43 deletions

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:intl/intl.dart' as intl;
import '../model/flood_station.dart';
import '../services/date_utility.dart';
class MapPopup extends StatelessWidget {
const MapPopup(
@@ -43,7 +43,7 @@ class MapPopup extends StatelessWidget {
Padding(padding: EdgeInsets.only(left: 8)),
Text(
_station.dateOpened != null
? intl.DateFormat.yMd().format(_station.dateOpened!)
? DateUtility.formatDateToYmd(_station.dateOpened!)
: '-',
),
],

View File

@@ -1,9 +1,9 @@
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart' as intl;
import 'dart:math';
import '../model/reading.dart';
import '../services/date_utility.dart';
class ReadingGraph extends StatelessWidget {
const ReadingGraph({super.key, required List<Reading> readings})
@@ -73,7 +73,7 @@ class ReadingGraph extends StatelessWidget {
minIncluded: false,
getTitlesWidget: (value, meta) => SideTitleWidget(
meta: meta,
child: Text(_getDate(value)),
child: Text(DateUtility.formatMinutesToHm(value)),
),
),
);
@@ -94,23 +94,17 @@ class ReadingGraph extends StatelessWidget {
);
}
String _getDate(double value) {
intl.DateFormat hmFormat = intl.DateFormat('Hm');
return hmFormat.format(
DateTime.fromMillisecondsSinceEpoch((value * 1000 * 60).toInt()));
}
String _getLongDate(double value) {
DateTime date =
DateTime.fromMillisecondsSinceEpoch((value * 1000 * 60).toInt());
int daysDifference = (DateTime.now().weekday - date.weekday + 7) % 7;
if (daysDifference == 0) {
return 'Today ${intl.DateFormat('Hm').format(date)}';
return 'Today ${DateUtility.formatDateToHm(date)}';
} else if (daysDifference == 1) {
return 'Yesterday ${intl.DateFormat('Hm').format(date)}';
return 'Yesterday ${DateUtility.formatDateToHm(date)}';
}
return intl.DateFormat('yyyy-MM-dd H:m').format(date);
return DateUtility.formatDateToYmdhm(date);
}
}