gpt4 book ai didi

java - 如何从经过特定日期的日期列表中获取最近的 future 日期?

转载 作者:行者123 更新时间:2023-11-30 02:43:22 24 4
gpt4 key购买 nike

如何从日期列表中获取与我通过的日期相比最近的 future 日期?例如,我有 3 个类对象的列表,其日期属性分别为 1 月 10 日、1 月 20 日和 1 月 30 日。我有一个日期对象,即 1 月 15 日。现在,当我传递日期 1 月 15 日时,它应该返回 1 月 20 日的对象。如果我传递日期 1 月 25 日,它应该返回 1 月 30 日的对象。这可能吗?

最佳答案

您搜索日期列表,忽略引用日期之前的任何日期,然后记住这些日期中最早的日期。

记住最早的日期就像寻找最小值的常规循环。

示例:

private static Optional<LocalDate> findNext(LocalDate refDate, LocalDate[] dates) {
LocalDate next = null;
for (LocalDate date : dates)
if (! date.isBefore(refDate) && (next == null || date.isBefore(next)))
next = date;
return Optional.ofNullable(next);
}

测试

LocalDate[] dates = { LocalDate.of(2016, 1, 10),
LocalDate.of(2016, 1, 20),
LocalDate.of(2016, 1, 30) };
System.out.println(findNext(LocalDate.of(2016, 1, 5), dates));
System.out.println(findNext(LocalDate.of(2016, 1, 15), dates));
System.out.println(findNext(LocalDate.of(2016, 1, 25), dates));
System.out.println(findNext(LocalDate.of(2016, 2, 1), dates));

输出

Optional[2016-01-10]
Optional[2016-01-20]
Optional[2016-01-30]
Optional.empty

关于java - 如何从经过特定日期的日期列表中获取最近的 future 日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40989873/

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