Flutter - 将分钟转换为 TimeOfDay

Flutter - Convert minutes to TimeOfDay

目前我从 BE 中得到一个数字,表示 750 分钟 (int) 并且应该代表一天中的时间。

750 minutes = 12.5 hours and so the UI should display 12:30

1080 minutes = 18 hours and so the UI should display 18:00

但我似乎无法找到一种方法来将分钟干净地转换为具有小时和分钟的适当对象。

最后我想要一个TimeOfDay对象

我会继续奋斗,如果我自己找到答案,我也会post:)

在上面的评论的帮助下,我通过拆分刺痛解决了它。我不认为这是转换的最佳方式,因为我依赖于 Duration Class 永远不会改变,但无论如何我通过以下

得到了我想要的
  TimeOfDay minutesToTimeOfDay(int minutes) {
      Duration duration = Duration(minutes: minutes);
      List<String> parts = duration.toString().split(':');
      return TimeOfDay(hour: int.parse(parts[0]), minute: int.parse(parts[1]));
  }

用分钟数创建 Duration,然后 toString() 该实例将输出 00:00,然后在冒号“:”

上拆分该字符串

我建议像这样进行两个数学运算:

  TimeOfDay minutesToTimeOfDay(int minutesPastMidnight) {
      int hours = minutesPastMidnight ~/ 60;
      int minutes = minutesPastMidnight % 60;
      return TimeOfDay(hour: hours, minute: minutes);
  }

这大致基于一个相关问题。