【发布时间】:2021-09-03 09:33:36
【问题描述】:
我正在尝试在我正在完成的应用程序上向我的 UI 显示以小时和分钟为单位的休息时间值。我利用另一个 StackOverflow 论坛来解决这个问题,到目前为止它工作正常,时间是显示,但我认为数学在某处是错误的..
我有两个 TextView,一个以分钟为单位显示活动时间,另一个以小时和分钟显示休息时间(因为休息时间通常会更长)。休息时间基本上是 24 小时减去活动时间。
到目前为止,我已将存储的活动时间字符串转换为 Int,从分钟值中减去 24 小时(1440 分钟),然后使用 Duration 方法将该值转换为小时和分钟 (hh:MM)效果很好,用户界面在 hh:MM 中显示了正确的减去值。
我的问题是,当我尝试使用字符串将其拆分为多个部分时,我的字符串是 (restHours + " h" + restMinutes + " minutes"),我得到了整个 restTimeInt 值的小时和分钟值(例如:23h 1430minutes)。
如何更改它以显示正确的分钟值(例如:23 小时 40 分钟)?
int activeTimeValue = Integer.parseInt(activityTime); // ex: 10 mins
int day = 1440;
int restTimeInt = day - activeTimeValue; // 1430 mins
Duration d = Duration.ofMinutes(restTimeInt);
int restHours = (int) d.toHours();
int restMinutes = (int) d.toMinutes();
restTimeTV.setText(restHours + " hr" + restMinutes + " mins");
【问题讨论】:
-
Java 9 引入了
toHoursPart()和toMinutesPart()方法(因此对于更多的时间单位,这里不太相关)。您使用 Java 9 或更高版本吗?如果是,请使用toMinutesPart()代替restMinutes,否则您必须写d.toMinutes() % 60。 -
完美,我想知道.. 我尝试使用 toHoursPart() 并且它标记为无法解析.. 感谢您的帮助@deHaar
-
不客气!