-1

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

750 分钟 = 12.5 小时,因此 UI 应显示 12:30

1080 分钟 = 18 小时,因此 UI 应显示 18:00

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

最后我想要一个TimeOfDay对象

我会继续努力,如果我自己找到答案也会发帖:)

4

2 回答 2

1

在上述评论的帮助下,我通过拆分刺痛解决了这个问题。我不认为这是转换的最佳方式,因为我相信 Duration 类永远不会改变,但我通过执行以下操作得到了我想要的东西

  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,然后在冒号“:”上拆分此字符串

于 2020-06-01T10:55:28.727 回答
1

我建议做两个这样的数学运算:

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

这大致基于this answer to a related question。

于 2021-11-16T19:23:13.540 回答