gpt4 book ai didi

java - 如何将本地日期与本地日期列表进行比较

转载 作者:行者123 更新时间:2023-12-02 09:30:22 25 4
gpt4 key购买 nike

如果我有一个本地日期列表,并且我需要将本地日期与该列表进行比较,并返回该日期之前的最后一个日期,那么最好的方法是什么。

例如,给定列表:

2019年1月1日2020年1月1日01/01/20212022年1月1日

如果我输入日期 30/12/2021,那么我希望答案返回 01/01/2021

我想我会迭代列表,直到找到给定日期不早于的第一个日期,然后返回列表中的上一个条目(除非这是第一个条目,在这种情况下我不会返回任何内容) )

日期列表已按升序排序:

for (int i = 0; i < dates.size{}; i++)
{
if (myDate.before(dates[i]) {
if (i==0) {
return null;
}
else {
return dates[i-1];
}
}

}

最佳答案

尝试这样的事情:

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

public class Main {

public static void main(String[] args) {
// create list with some random dates
List<LocalDate> list = new ArrayList<>();
list.add(LocalDate.of(2019, 3, 12));
list.add(LocalDate.of(2019, 4, 11));
list.add(LocalDate.of(2019, 8, 10));
list.add(LocalDate.of(2019, 6, 9));

System.out.println(getMostRecentBeforeDate(LocalDate.now(), list));
}

// this is our comparing/filtering method
private static LocalDate getMostRecentBeforeDate(LocalDate targetDate, List<LocalDate> dateList) {
// we filter the list so that only dates which are "older" than our targeted date remain
// then we get the most recent date by using compareTo method from LocalDate class and we return that date
return dateList.stream().filter(date -> date.isBefore(targetDate)).max(LocalDate::compareTo).get();
}
}

如果您运行上面的代码,您应该得到 2019-08-10 作为输出,因为这是当前日期 (LocalDate.now()) 之前的最近日期>).

关于java - 如何将本地日期与本地日期列表进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58036002/

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