diff --git a/lib/util/date_extension.dart b/lib/util/date_extension.dart index bf12ddbea21c87937a018937a100d1c5beec9200..272d082bb374a8ccc35c34ee1525e62b344b65c7 100644 --- a/lib/util/date_extension.dart +++ b/lib/util/date_extension.dart @@ -23,8 +23,12 @@ extension DateExtension on DateTime { return '$dd.$mm.$year'; } + DateTime atStartOfDay() { + return DateTime(year, month, day); + } + DateTime atStartOfWeek() { final date = subtract(Duration(days: weekday - 1)); - return DateTime(date.year, date.month, date.day); + return date.atStartOfDay(); } } diff --git a/test/start_of_week_test.dart b/test/start_of_datetime_test.dart similarity index 74% rename from test/start_of_week_test.dart rename to test/start_of_datetime_test.dart index 745f47ba057393c7b6335490a32592dea3ba915a..5fee05919dfc9ecc6bb0d0b45cd3d72827bf49bf 100644 --- a/test/start_of_week_test.dart +++ b/test/start_of_datetime_test.dart @@ -30,4 +30,14 @@ void main() { expect(startOfWeek, startOfNextMonday); }); + + test('Start of day at 00:00', () { + final startOfWeek = DateTime(2023, 3, 21, 0, 0).atStartOfDay(); + expect(startOfWeek, DateTime(2023, 3, 21, 0, 0)); + }); + + test('Start of day at 23:59', () { + final startOfWeek = DateTime(2023, 3, 21, 23, 59).atStartOfDay(); + expect(startOfWeek, DateTime(2023, 3, 21, 00, 00)); + }); }