这里我想验证时间。根据此图片,当我选择“班次开始时间”和“结束时间”时,无论何时我选择休息时间,它总是在“班次开始时间”和“班次结束时间”之间。
这里是输出图像
这里是时间选择器的代码
DateTimeField(
decoration: InputDecoration(
contentPadding: const EdgeInsets.symmetric(
vertical: 15.0, horizontal: 10),
labelText: "Time",
filled: true,
fillColor: Colors.white,
border: OutlineInputBorder(
borderRadius: new BorderRadius.circular(6),
),
),
format: format,
onShowPicker: (context, currentValue) async {
final time = await showTimePicker(
context: context,
initialTime: TimeOfDay.fromDateTime(
currentValue ?? DateTime.now(),
),
);
return DateTimeField.convert(time);
},
),
final startShift = DateTime.now();
final endShift = DateTime.now().add(Duration(hours: 8));
final startBreak = startShift.add(Duration(hours: 3));
final endBreak = startBreak.add(Duration(hours: 1));
if ((startBreak.isAfter(startShift) && startBreak.isBefore(endShift)) &&
(endBreak.isAfter(startShift) && endBreak.isBefore(endShift))) {
//--- Break is within a shift.
} else {
//--- Invalid break;
}