Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.time.LocalDate范围内的生日_Java_Localdate_Java Time - Fatal编程技术网

java.time.LocalDate范围内的生日

java.time.LocalDate范围内的生日,java,localdate,java-time,Java,Localdate,Java Time,我试图在java.time.LocalDate的集合中选择生日(独立于年份)。为什么是本地日期?因为这种类型的生日礼物似乎是最好的 假设我想过滤3月6日至4月30日之间的生日,而不考虑年份。 如何做到这一点? 如果我这样做,我会用LocalDate替换年份,并使用isAfter和isBefore方法。 我必须改变年份的事实只是一个简单的错误。或者我使用了错误的数据类型(LocalDate)我宁愿使用“没有年份的日期”类型,该类型也具有可比性,并提供类似于isAfter()或isBefore()的

我试图在
java.time.LocalDate
的集合中选择生日(独立于年份)。为什么是本地日期?因为这种类型的生日礼物似乎是最好的

假设我想过滤3月6日至4月30日之间的生日,而不考虑年份。 如何做到这一点?

如果我这样做,我会用LocalDate替换年份,并使用
isAfter
isBefore
方法。
我必须改变年份的事实只是一个简单的错误。或者我使用了错误的数据类型(LocalDate)

我宁愿使用“没有年份的日期”类型,该类型也具有可比性,并提供类似于
isAfter()
isBefore()的方法。此外,可以使用
atYear(int)
方法将
MonthDay
扩展为
LocalDate

如果您坚持使用
LocalDate
,那么您应该只使用闰年,否则2月29日将是一个问题。

List birthdays=Arrays.asList(
List<LocalDate> birthdays = Arrays.asList(
        LocalDate.of(1990, Month.JANUARY, 5),
        LocalDate.of(1992, Month.MARCH, 7),
        LocalDate.of(1995, Month.MAY, 5));
MonthDay filterFrom = MonthDay.of(Month.MARCH, 6);
MonthDay filterTo = MonthDay.of(Month.APRIL, 30);

List<LocalDate> filteredDates = birthdays.stream()
        .filter(date -> {
            MonthDay md = MonthDay.from(date);
            return md.compareTo(filterFrom) >= 0 && md.compareTo(filterTo) <= 0;
        })
        .collect(Collectors.toList());

System.out.println(filteredDates);
LocalDate.of(1990年1月5日), 本地日期(1992年3月7日), 本地日期(1995年5月5日); MonthDay filterFrom=年月日(6月3日); MonthDay filterTo=年月日(30年4月); List filteredDates=birthdays.stream() .filter(日期->{ MonthDay md=MonthDay.from(日期); 返回md.compareTo(filterFrom)>=0&&md.compareTo(filterTo)