Skip to content

Commit be716d9

Browse files
authored
isWorkday and isWeekday #65
2 parents e35471f + 88606bb commit be716d9

File tree

2 files changed

+64
-0
lines changed

2 files changed

+64
-0
lines changed

lib/src/extensions.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,10 @@ extension DateTimeTimeExtension on DateTime {
259259
}
260260
return this;
261261
}
262+
263+
bool get isWeekend => (weekday == DateTime.saturday) || (weekday == DateTime.sunday);
264+
265+
bool get isWorkday => !isWeekend;
262266
}
263267

264268
extension DurationTimeExtension on Duration {

test/time_test.dart

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -656,6 +656,66 @@ void main() {
656656
expect(it.clamp(min: min, max: max), min);
657657
});
658658
});
659+
group('Weekend', () {
660+
test('monday is not weekend', () {
661+
final it = DateTime(2022, DateTime.august, 1);
662+
expect(it.isWeekend, isFalse);
663+
});
664+
test('tuesday is not weekend', () {
665+
final it = DateTime(2022, DateTime.august, 2);
666+
expect(it.isWeekend, isFalse);
667+
});
668+
test('wednesday is not weekend', () {
669+
final it = DateTime(2022, DateTime.august, 3);
670+
expect(it.isWeekend, isFalse);
671+
});
672+
test('thursday is not weekend', () {
673+
final it = DateTime(2022, DateTime.august, 4);
674+
expect(it.isWeekend, isFalse);
675+
});
676+
test('friday is not weekend', () {
677+
final it = DateTime(2022, DateTime.august, 5);
678+
expect(it.isWeekend, isFalse);
679+
});
680+
test('saturday is weekend', () {
681+
final it = DateTime(2022, DateTime.august, 6);
682+
expect(it.isWeekend, isTrue);
683+
});
684+
test('sunday is weekend', () {
685+
final it = DateTime(2022, DateTime.august, 7);
686+
expect(it.isWeekend, isTrue);
687+
});
688+
});
689+
group('Workday', () {
690+
test('monday is workday', () {
691+
final it = DateTime(2022, DateTime.august, 1);
692+
expect(it.isWorkday, isTrue);
693+
});
694+
test('tuesday is workday', () {
695+
final it = DateTime(2022, DateTime.august, 2);
696+
expect(it.isWorkday, isTrue);
697+
});
698+
test('wednesday is workday', () {
699+
final it = DateTime(2022, DateTime.august, 3);
700+
expect(it.isWorkday, isTrue);
701+
});
702+
test('thursday is workday', () {
703+
final it = DateTime(2022, DateTime.august, 4);
704+
expect(it.isWorkday, isTrue);
705+
});
706+
test('friday is workday', () {
707+
final it = DateTime(2022, DateTime.august, 5);
708+
expect(it.isWorkday, isTrue);
709+
});
710+
test('saturday is not workday', () {
711+
final it = DateTime(2022, DateTime.august, 6);
712+
expect(it.isWorkday, isFalse);
713+
});
714+
test('sunday is not workday', () {
715+
final it = DateTime(2022, DateTime.august, 7);
716+
expect(it.isWorkday, isFalse);
717+
});
718+
});
659719
});
660720

661721
group('Duration', () {

0 commit comments

Comments
 (0)