addPeriod method
Helper to add periods of time to the change indicator.
Implementation
void addPeriod(String code, RegExpMatch match) {
_code = '${_code!} $code';
// The middle time between self._init_period and self._end_period
final middleTime = _initPeriod.time.add(const Duration(hours: 1));
final prefix = match.namedGroup('prefix');
final hour = match.namedGroup('hour');
final minute = match.namedGroup('min');
final hourAsInt = int.parse(hour!);
final minAsInt = int.parse(minute!);
late final DateTime time;
late final int minutes;
if (hourAsInt == _initPeriod.hour) {
minutes = minAsInt - _initPeriod.minute;
time = _initPeriod.time.add(Duration(minutes: minutes));
} else if (hourAsInt == middleTime.hour) {
minutes = minAsInt - middleTime.minute;
time = middleTime.add(Duration(minutes: minutes));
} else {
minutes = minAsInt - _endPeriod.minute;
time = _endPeriod.time.add(Duration(minutes: minutes));
}
if (prefix == 'FM') {
_from = Time(time: time);
} else if (prefix == 'TL') {
_until = Time(time: time);
} else {
_at = Time(time: time);
}
}