从对象数组中获取最近或最接近的日期java
时间: 2023-05-17 07:03:07 浏览: 294
JS实现简单获取最近7天和最近3天日期的方法
5星 · 资源好评率100%
可以使用Java 8中的Stream API和Comparator来实现。首先,将日期数组转换为LocalDate对象的流,然后使用Comparator.comparing()方法将每个日期与目标日期进行比较,并返回最接近的日期。
以下是示例代码:
```java
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
LocalDate[] dates = {LocalDate.of(2021, 1, 1), LocalDate.of(2021, 3, 15), LocalDate.of(2021, 5, 1)};
LocalDate targetDate = LocalDate.of(2021, 4, 1);
LocalDate closestDate = Arrays.stream(dates)
.min(Comparator.comparing(date -> Math.abs(ChronoUnit.DAYS.between(date, targetDate))))
.orElse(null);
System.out.println("Closest date: " + closestDate);
}
}
```
输出结果为:
```
Closest date: 2021-03-15
```
这里我们使用了ChronoUnit.DAYS.between()方法来计算两个日期之间的天数差异,然后使用Math.abs()方法获取绝对值。最后,使用Comparator.comparing()方法将日期按照与目标日期的差异进行排序,然后使用min()方法获取最小值。
阅读全文