当前位置: 首页 > 面试题库 >

两次之间的LocalTime()差

汲丰茂
2023-03-14
问题内容

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

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;


 类似资料:
  • 问题内容: 时间1:17:05时间2:17:08 我想在几秒钟内得到差异。 问题答案: long diffInMillis = newerDate.getTime() - olderDate.getTime() 必看 API文件

  • 问题内容: 我必须检查特定时间是否介于两次(打开和关闭时间)之间。 打开和关闭时间在数据库中保存为与工作日ID(而不是日期)相关的“开始”和“结束”。 所以我的问题是,我有两种不同的情况,第一种情况是结束时间大于开始时间,例如end = 19:00:00和start = 09:00:00 但也可以是结束= 06:00:00和开始= 20:00:00 那么检查时间是否介于两次之间的性能方法是什么?

  • 我想比较我的Android应用程序的两个日期,但我遇到了一个非常奇怪的问题。 例如: 如果我将过去的

  • 问题内容: 我想查询一个mySQL表以提取两次和两次之间的数据。我知道如何使用“ between”调用对单个“ datetime”列执行此操作,但是我的列是一个“ date”列和一个“ time”列。我在网上可以找到的所有解决方案都是针对单个datetime列的。 我的范围从15:30的“ day1”到15:14的day1 + 1day 到目前为止,我可以获得以下范围(有效): 但是我显然需要合并

  • 问题内容: 我有两个时间字符串;例如。同一天的“ 09:11”和“ 17:22”(格式为hh:mm)。如何计算这两者之间的时间差(以分钟为单位)? 标准库可以这样做吗? 例: 给定hh:mm中的小时和分钟,是否有更简单的方法来执行此操作 问题答案: 一个纯bash解决方案: 使用的另一种解决方案(我们使用小时/分钟,因此日期并不重要) 参见http://en.wikipedia.org/wiki/

  • 问题内容: 我有两次没有约会 我想通过使用以下方式显示上述时间之间的总时数 如果不可能, 请告诉我使用by 。 输入: 预期产量: 问题答案: 获取时间 我通过使用这段代码来节省时间 获取分钟 我通过使用下面的代码得到了几分钟 我的工作代码是