有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在java特殊用例中列出迭代期间添加的项

我有一个函数,它应该返回一个日期列表(java.sql.Date),该列表基于设置为startDate-endDate的范围。我首先添加了startDate,并希望增加它(可以是+1天、一周或一个月),然后从“最新”日期一直到结束日期

我尝试过使用传统的foreach,但它不起作用,因为它不允许在迭代时添加新日期,所以我切换到ListIterator。 这只进入while一次,增加日期,添加日期,但显然没有next,因为add函数没有在末尾附加项(?)

解决这项任务的实际方法是什么

public List<Date> getBookingDatesInRange(Date startDate, Date endDate, boolean isDaily, boolean isWeekly) {

    List<Date> dates = new ArrayList<Date>();
    dates.add(startDate);
    ListIterator<Date> iter = dates.listIterator();         
    while(iter.hasNext()) {
        LocalDate new = iter.next().toLocalDate();
        Date newDate;
        if(isDaily) {
            newDate= Date.valueOf(new.plusDays(1));
        } else if(isWeekly) {
            newDate= Date.valueOf(new.plusWeeks(1));
        } else {
            newDate= Date.valueOf(new.plusMonths(1));
        }
        if(newDate.before(endDate) || newDate.equals(endDate) {
            iter.add(newDate);
        } else {
            return dates;
    }                   
}

共 (0) 个答案