【发布时间】:2018-11-30 15:01:04
【问题描述】:
如何获得两个LocalTimes 的平均值?找不到任何合适的方法。
例如 08:00 和 14:30,应该返回 (14-8)/2 = 3 + 分钟 (30-00= 30)/2,所以 3:15 然后像
Localtime xxx = LocalTime.parse("08:00", formatter).plus(3, ChronoUnit.HOURS);
//and after that's done
xxx = xxx.plus(15, ChronoUnit.MINUTES);
现在假设我有以下代码:
//this means that if code is 08:00, it should look whether the average of Strings split21 and split2 (which are put in time2 and time3, where time2 is ALWAYS before time3) is before 08:00
if(code1.contains("800")) {
LocalTime time1 = LocalTime.parse("08:00", formatter);
LocalTime time2 = LocalTime.parse(split21, formatter);
LocalTime time3 = LocalTime.parse(split2, formatter);
LocalTime average =
if(time2.isBefore(time1)) {
return true;
}
else {
return false;
}
}
显然我可以使用 .getHour 和 .getMinute ,但是这里有两个问题。
- 我不能划分 LocalTime(仅当分别处理小时和分钟时,但老实说这有点太中世纪了
- 如果我不直接划分小时和分钟,它将高于 24:00,我不知道会发生什么:我想它会在 00:00 等而不是 36:00 时更进一步示例。
是否有人可以完成此代码/解释问题所在?
【问题讨论】:
-
为什么在
(14-8)/2中减号,在(00+30 = 30)/2中加号我不明白! -
这实际上是一个好问题,抱歉我写得很快。我的意思是(30-00)
-
两次的平均值是多少?
8:00和14:30的平均值是多少3:15?我假设它是11:15。还是您需要差异?那将是6:30 -
我没有说平均是 3:15。您必须在第一次上加上 3:15 才能得到平均值。快速数学