在 for 循环中向 Java LocalTime 添加固定的分钟数,直到午夜,而不会导致无限循环

问题描述 投票:0回答:1

给定

LocalTime
添加
n
分钟直到午夜并将这些时间打印到控制台。示例:

public static void main(String[] args) {

    LocalTime start    = LocalTime.of(10, 12, 0);
    LocalTime midnight = LocalTime.of(23, 59, 59);

    for (LocalTime t = start; t.isBefore(midnight); t = t.plusMinutes(30)) {
        System.out.println(t);
    }
}

预期:

10:12
10:42
11:12
11:42
12:12
...
...
21:42
22:12
22:42
23:12
23:42

上述结果导致无限循环。如何避免?

java java-time
1个回答
-1
投票

正如

LocalTime
文档所述,
LocalTime is an immutable date-time object that represents a time, often viewed as hour-minute-second.
LocalTime
没有一天的概念,因此 23:59:59 是
LocalTime
的最大值。只有在经过几次添加开始后,循环最终变成 23:59:59 时才会停止。或者,您可以使用
LocalDateTime
让它知道这一天。

© www.soinside.com 2019 - 2024. All rights reserved.