DateRange 迭代错误(代码取自 SO)
DateRange iterating wrong (code taken from SO)
几个月前,我在 java
中发现了这个关于迭代几天的帖子
并开始使用 class 日期范围:
public class DateRange implements Iterable<LocalDate> {
private final LocalDate startDate;
private final LocalDate endDate;
public DateRange(LocalDate startDate, LocalDate endDate) {
//check that range is valid (null, start < end)
this.startDate = startDate;
this.endDate = endDate;
}
@Override
public Iterator<LocalDate> iterator() {
return stream().iterator();
}
public Stream<LocalDate> stream() {
return Stream.iterate(startDate, d -> d.plusDays(1))
.limit(ChronoUnit.DAYS.between(startDate, endDate) + 1);
}
public List<LocalDate> toList() { //could also be built from the stream() method
List<LocalDate> dates = new ArrayList<>();
for (LocalDate d = startDate; !d.isAfter(endDate); d = d.plusDays(1)) {
dates.add(d);
}
return dates;
}
}
不管怎样,今天在调试时我发现这根本不起作用,我想知道一个星期的迭代怎么花了这么长时间。只是为了发现它以随机顺序多次迭代同一天。
问题可能是我不明白如何使用这个...
for (LocalDate date : new DateRange(thymeDate.getDate_a(), thymeDate.getDate_b())) {
List<Group_C> owners = getAllByDate(date);
groupList = composeGroup.composeGroupForRange(groupList, owners);
}
return GroupList;
}
示例中的DateRange.between()
我也试过了,不是函数,不能用?
并创建新的普通实例。
DateRange range = new DateRange(dateA, dateB)
和 @Autowire
ing DateRange class.
我将如何迭代给定的日子?
这最终是双 POST
的问题,由使用代理引起。 DateRange 方法一直都很好......
您可以在另一个线程中查看 double POST
问题的解决方案
感谢 Ole V.V。试图提供帮助:)
几个月前,我在 java
中发现了这个关于迭代几天的帖子并开始使用 class 日期范围:
public class DateRange implements Iterable<LocalDate> {
private final LocalDate startDate;
private final LocalDate endDate;
public DateRange(LocalDate startDate, LocalDate endDate) {
//check that range is valid (null, start < end)
this.startDate = startDate;
this.endDate = endDate;
}
@Override
public Iterator<LocalDate> iterator() {
return stream().iterator();
}
public Stream<LocalDate> stream() {
return Stream.iterate(startDate, d -> d.plusDays(1))
.limit(ChronoUnit.DAYS.between(startDate, endDate) + 1);
}
public List<LocalDate> toList() { //could also be built from the stream() method
List<LocalDate> dates = new ArrayList<>();
for (LocalDate d = startDate; !d.isAfter(endDate); d = d.plusDays(1)) {
dates.add(d);
}
return dates;
}
}
不管怎样,今天在调试时我发现这根本不起作用,我想知道一个星期的迭代怎么花了这么长时间。只是为了发现它以随机顺序多次迭代同一天。
问题可能是我不明白如何使用这个...
for (LocalDate date : new DateRange(thymeDate.getDate_a(), thymeDate.getDate_b())) {
List<Group_C> owners = getAllByDate(date);
groupList = composeGroup.composeGroupForRange(groupList, owners);
}
return GroupList;
}
示例中的DateRange.between()
我也试过了,不是函数,不能用?
并创建新的普通实例。
DateRange range = new DateRange(dateA, dateB)
和 @Autowire
ing DateRange class.
我将如何迭代给定的日子?
这最终是双 POST
的问题,由使用代理引起。 DateRange 方法一直都很好......
您可以在另一个线程中查看 double POST
问题的解决方案
感谢 Ole V.V。试图提供帮助:)