gpt4 book ai didi

java - 如何比较 Java 中的时间?

转载 作者:行者123 更新时间:2023-12-01 21:52:04 26 4
gpt4 key购买 nike

我想知道如何比较 Java 程序中的时间。例如:如果我选择 09:00-12:00 的时间段并进行设置。如果我第二次选择 11:00-13:00 时间段,我希望能够弹出错误,但我不太确定如何设置。

例如,如果您在 9 点至 12 点之间预订按摩治疗场所的时间,则您无法在 11 点至 1 点为自己预订另一个时间,这是没有意义的。我正在尝试弄清楚如何将其放入代码中。我的菜鸟级别让我考虑使用字符串作为选择方法,然后将字符串解析为整数并比较整数是否重叠?不过,我想使用 Date 类,因为它看起来非常有用,而且我想学习如何使用它。

最佳答案

来自 java.time 的本地时间

    LocalTime blockStart = LocalTime.of(9, 0);
LocalTime blockEnd = LocalTime.of(12, 0);
assert blockEnd.isAfter(blockStart);

LocalTime newBlockStart = LocalTime.of(11, 0);
LocalTime newBlockEnd = LocalTime.of(13, 0);
assert newBlockEnd.isAfter(newBlockStart);

if (newBlockStart.isBefore(blockEnd) && newBlockEnd.isAfter(blockStart)) {
System.out.println("" + newBlockStart + '–' + newBlockEnd
+ " overlaps with " + blockStart + '–' + blockEnd);
}

代码片段的输出是:

11:00–13:00 overlaps with 09:00–12:00

LocalTime 是一天中没有日期的时间。一个潜在的缺点是它无法考虑时钟是否向前或向后转动,例如夏令时 (DST) 开始或结束时。但如果您不需要那么花哨的东西,那么它就是正确的使用类。

检测重叠的公式是标准的。我在下面提供了一个相关问题的链接。

I want to use the Date class though…

不要,不要,请不要。 Date 设计得很糟糕并且已经过时了。如果您学习如何使用该类,情况会更好。学习使用 java.time,现代 Java 日期和时间 API。一个可能的起点是下面的第一个链接。

链接

关于java - 如何比较 Java 中的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58758114/

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