gpt4 book ai didi

java - LocalTime() 两次之间的差异

转载 作者:搜寻专家 更新时间:2023-10-31 19:36:36 27 4
gpt4 key购买 nike

我有一个航类行程计划,我需要在其中获取出发时间和到达时间之间的差异。我从数据中获取这些指定时间作为字符串。这是我的问题:

import static java.time.temporal.ChronoUnit.MINUTES;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class test2 {
public static void main(String[] args) {

DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("HHmm");
LocalTime departure = LocalTime.parse("1139", dateFormat);
LocalTime arrival = LocalTime.parse("1435", dateFormat);
LocalTime a = LocalTime.parse("0906", dateFormat);
System.out.println(MINUTES.between(departure, arrival));
System.out.println(MINUTES.between(arrival, a));
}
}

输出:

176
-329

第一次返回11:39和14:35的差就好了。但是第二个差异只有 5 个小时,而应该是 19 个小时。我该如何解决这个问题,我在这里做错了什么?

如有任何帮助,我们将不胜感激。

编辑:我正在使用图表来存储我的数据。两个机场之间的最短路线示例如下:

Route for Edinburgh to Sydney
1 Edinburgh, 1139, TK3245, Istanbul, 1435
2 Istanbul, 0906, TK4557, Singapore, 1937
3 Singapore, 0804, QF1721, Sydney, 1521

这些是我们从 EDI 到 SYD 的 3 个航类。上面输出的格式是(城市,出发时间,航类号,目的地,到达时间)。

最佳答案

24 小时的总分钟数是 1440。所以当差值小于零(但你需要一个正值)时,你应该在结果中加上一整天:

int diff = MINUTES.between(arrival, a);
if (diff < 0) {
diff += 1440;
}

你可以使用这个实现同样的事情:

int diff = (MINUTES.between(arrival, a) + 1440) % 1440;

关于java - LocalTime() 两次之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53254475/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com