From eae2991bf0cb28e8f0151a2ef160cc6c1156d332 Mon Sep 17 00:00:00 2001 From: FELIPE EDUARDO MORSCHEL <52160996+FMorschel@users.noreply.github.com> Date: Tue, 23 Aug 2022 08:49:54 -0300 Subject: [PATCH 1/2] isWorkday and isWeekday --- lib/src/extensions.dart | 5 ++++ test/time_test.dart | 60 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/lib/src/extensions.dart b/lib/src/extensions.dart index 569162c..6bc79b1 100644 --- a/lib/src/extensions.dart +++ b/lib/src/extensions.dart @@ -259,6 +259,11 @@ extension DateTimeTimeExtension on DateTime { } return this; } + + bool get isWeekend => + (weekday == DateTime.saturday) || (weekday == DateTime.sunday); + + bool get isWorkday => !isWeekend; } extension DurationTimeExtension on Duration { diff --git a/test/time_test.dart b/test/time_test.dart index 66cb573..8b08a93 100644 --- a/test/time_test.dart +++ b/test/time_test.dart @@ -656,6 +656,66 @@ void main() { expect(it.clamp(min: min, max: max), min); }); }); + group('Weekend', () { + test('monday is not weekend', () { + final it = DateTime(2022, DateTime.august, 1); + expect(it.isWeekend, isFalse); + }); + test('tuesday is not weekend', () { + final it = DateTime(2022, DateTime.august, 2); + expect(it.isWeekend, isFalse); + }); + test('wednesday is not weekend', () { + final it = DateTime(2022, DateTime.august, 3); + expect(it.isWeekend, isFalse); + }); + test('thursday is not weekend', () { + final it = DateTime(2022, DateTime.august, 4); + expect(it.isWeekend, isFalse); + }); + test('friday is not weekend', () { + final it = DateTime(2022, DateTime.august, 5); + expect(it.isWeekend, isFalse); + }); + test('saturday is weekend', () { + final it = DateTime(2022, DateTime.august, 6); + expect(it.isWeekend, isTrue); + }); + test('sunday is weekend', () { + final it = DateTime(2022, DateTime.august, 7); + expect(it.isWeekend, isTrue); + }); + }); + group('Workday', () { + test('monday is workday', () { + final it = DateTime(2022, DateTime.august, 1); + expect(it.isWorkday, isTrue); + }); + test('tuesday is workday', () { + final it = DateTime(2022, DateTime.august, 2); + expect(it.isWorkday, isTrue); + }); + test('wednesday is workday', () { + final it = DateTime(2022, DateTime.august, 3); + expect(it.isWorkday, isTrue); + }); + test('thursday is workday', () { + final it = DateTime(2022, DateTime.august, 4); + expect(it.isWorkday, isTrue); + }); + test('friday is workday', () { + final it = DateTime(2022, DateTime.august, 5); + expect(it.isWorkday, isTrue); + }); + test('saturday is not workday', () { + final it = DateTime(2022, DateTime.august, 6); + expect(it.isWorkday, isFalse); + }); + test('sunday is not workday', () { + final it = DateTime(2022, DateTime.august, 7); + expect(it.isWorkday, isFalse); + }); + }); }); group('Duration', () { From 88606bbee44f9254abc0b09e40df02b885a08741 Mon Sep 17 00:00:00 2001 From: FELIPE EDUARDO MORSCHEL <52160996+FMorschel@users.noreply.github.com> Date: Tue, 23 Aug 2022 08:58:11 -0300 Subject: [PATCH 2/2] Fixing format --- lib/src/extensions.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/src/extensions.dart b/lib/src/extensions.dart index 6bc79b1..27be656 100644 --- a/lib/src/extensions.dart +++ b/lib/src/extensions.dart @@ -260,8 +260,7 @@ extension DateTimeTimeExtension on DateTime { return this; } - bool get isWeekend => - (weekday == DateTime.saturday) || (weekday == DateTime.sunday); + bool get isWeekend => (weekday == DateTime.saturday) || (weekday == DateTime.sunday); bool get isWorkday => !isWeekend; }