From b40927bf95ca96aac66e4d195560eff351c9e5e5 Mon Sep 17 00:00:00 2001 From: doodlezucc <electerminator@gmail.com> Date: Tue, 21 Nov 2023 11:23:25 +0100 Subject: [PATCH] add atStartOfDay() extension --- lib/util/date_extension.dart | 6 +++++- ...t_of_week_test.dart => start_of_datetime_test.dart} | 10 ++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) rename test/{start_of_week_test.dart => start_of_datetime_test.dart} (74%) diff --git a/lib/util/date_extension.dart b/lib/util/date_extension.dart index bf12ddb..272d082 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 745f47b..5fee059 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)); + }); } -- GitLab