Flutter 在dart中计算两次之间的小时/分钟

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

我想在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.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()
功能将解决此问题。我已经更新了我的答案。