Flutter 在dart中计算两次之间的小时/分钟
我想在dart中计算两次之间的小时和分钟。 示例:如果开始时间为17:30,结束时间为09:00(后天),则应返回总计:15小时30分钟 我的代码:Flutter 在dart中计算两次之间的小时/分钟,flutter,datetime,dart,Flutter,Datetime,Dart,我想在dart中计算两次之间的小时和分钟。 示例:如果开始时间为17:30,结束时间为09:00(后天),则应返回总计:15小时30分钟 我的代码: check_two_times_is_before(String start_time, String end_time){ var format = DateFormat("HH:mm"); var start = format.parse(start_time); var end = format.p
check_two_times_is_before(String start_time, String end_time){
var format = DateFormat("HH:mm");
var start = format.parse(start_time);
var end = format.parse(end_time);
if(start.isAfter(end)) {
// do something here
}
}
您可以在
DateTime
类上使用difference
方法
检查前两次(字符串开始时间、字符串结束时间){
var格式=日期格式(“HH:mm”);
var start=format.parse(开始时间);
var end=format.parse(结束时间);
if(开始。isAfter(结束)){
结束=结束。添加(持续时间(天:1));
持续时间差异=结束差异(开始);
最终小时数=不同的小时数;
最终分钟数=差异分钟数%60;
打印(“$hours$minutes”);
}
}
您可以在Duration类中尝试
Duration duration = end.difference(start).abs();
final hours = duration.inHours;
final minutes = duration.inMinutes % 60;
print('$hours hours $minutes minutes');
此解决方案不正确,因为当您测试开始时间为17:30,结束时间为09:00时,它返回8小时510分钟。它应返回总计:15小时30分钟是的。我编辑了我的解决方案来解决这两个问题。你能再查一下吗?基本上,如果开始是在结束之后,只需增加1天到结束的持续时间,就可以得到所需的差异。新的编辑返回8小时30分钟它应该返回:15小时30分钟复制粘贴时,我漏了一行。我希望这将是最后一次编辑:DThanks it work now分钟计算可以是
minutes=duration.inMinutes%60代码>。你说得对。谢谢。您的解决方案返回:-8小时30分钟当您测试开始时间为17:30,结束时间为09:00时,应返回总计:15小时30minutes@blue492添加abs()
功能将解决此问题。我已经更新了我的答案。