1- import 'package:equatable/equatable.dart' ;
21import 'package:meta/meta.dart' ;
3- import 'package:time/time.dart' ;
42
53import '../enums/enums.dart' ;
64import '../periods/periods.dart' ;
@@ -10,8 +8,10 @@ import 'hour_generator.dart';
108import 'minute_generator.dart' ;
119import 'month_generator.dart' ;
1210import 'second_generator.dart' ;
11+ import 'semester_generator.dart' ;
1312import 'trimester_generator.dart' ;
1413import 'week_generator.dart' ;
14+ import 'year_generator.dart' ;
1515
1616/// A mixin for generating period types.
1717///
@@ -50,57 +50,3 @@ mixin PeriodGeneratorMixin<T extends Period> {
5050 return newPeriod == period;
5151 }
5252}
53-
54- /// A class that implements a generator of a period type of a semester.
55- class SemesterGenerator
56- with PeriodGeneratorMixin <SemesterPeriod >, EquatableMixin {
57- /// A class that implements a generator of a period type of a semester.
58- const SemesterGenerator ();
59-
60- @override
61- SemesterPeriod of (DateTime date) {
62- final julyFirst = date.copyWith (month: DateTime .july, day: 1 ).date;
63- if (date.isBefore (julyFirst)) {
64- return SemesterPeriod (
65- start: date.firstDayOfYear.date,
66- end: julyFirst.subtract (const Duration (microseconds: 1 )),
67- );
68- }
69- return SemesterPeriod (
70- start: julyFirst,
71- end: date.lastDayOfYear.endOfDay,
72- );
73- }
74-
75- @override
76- // ignore: hash_and_equals, overridden in EquatableMixin
77- bool operator == (Object other) {
78- return (super == other) || (other is SemesterGenerator );
79- }
80-
81- @override
82- List <Object ?> get props => [];
83- }
84-
85- /// A class that implements a generator of a period type of a year.
86- class YearGenerator with PeriodGeneratorMixin <YearPeriod >, EquatableMixin {
87- /// A class that implements a generator of a period type of a year.
88- const YearGenerator ();
89-
90- @override
91- YearPeriod of (DateTime date) {
92- return YearPeriod (
93- start: date.firstDayOfYear.date,
94- end: date.lastDayOfYear.endOfDay,
95- );
96- }
97-
98- @override
99- // ignore: hash_and_equals, overridden in EquatableMixin
100- bool operator == (Object other) {
101- return (super == other) || (other is YearGenerator );
102- }
103-
104- @override
105- List <Object ?> get props => [];
106- }
0 commit comments