【发布时间】:2020-06-01 10:14:20
【问题描述】:
目前我从 BE 得到一个数字,其状态类似于 750 minutes (int),应该代表一天中的时间。
750 分钟 = 12.5 小时,因此 UI 应显示 12:30
1080 分钟 = 18 小时,因此 UI 应显示 18:00
但我似乎无法找到一种方法来将分钟完全转换为具有小时和分钟的适当对象。
最后我想要一个TimeOfDay 对象
我会继续努力,如果我自己找到答案也会发帖:)
【问题讨论】:
目前我从 BE 得到一个数字,其状态类似于 750 minutes (int),应该代表一天中的时间。
750 分钟 = 12.5 小时,因此 UI 应显示 12:30
1080 分钟 = 18 小时,因此 UI 应显示 18:00
但我似乎无法找到一种方法来将分钟完全转换为具有小时和分钟的适当对象。
最后我想要一个TimeOfDay 对象
我会继续努力,如果我自己找到答案也会发帖:)
【问题讨论】:
在上面的 cmets 的帮助下,我通过拆分刺来解决了这个问题。我不认为这是转换的最佳方式,因为我相信 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,然后将该字符串拆分为冒号“:”
【讨论】:
我建议做两个这样的数学运算:
TimeOfDay minutesToTimeOfDay(int minutesPastMidnight) {
int hours = minutesPastMidnight ~/ 60;
int minutes = minutesPastMidnight % 60;
return TimeOfDay(hour: hours, minute: minutes);
}
这大致是基于this answer的一个相关问题。
【讨论】: