如何比较颤动中的时间?
How to compare time in flutter?
这里我想验证一下时间。按照这张图片,当我选择班次开始时间和结束时间时,每当我选择休息时间时,它总是在班次开始时间和班次结束时间之间。
这是输出图像
这是时间选择器的代码
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);
},
),
static var startShift = DateTime.now();
final endShift = DateTime.now().add(Duration(hours: 8));
static var 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;
}
这里我想验证一下时间。按照这张图片,当我选择班次开始时间和结束时间时,每当我选择休息时间时,它总是在班次开始时间和班次结束时间之间。
这是输出图像
这是时间选择器的代码
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);
},
),
static var startShift = DateTime.now();
final endShift = DateTime.now().add(Duration(hours: 8));
static var 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;
}