public List<Date> generateDates(Date start, Date end) { DateRecurrenceIterator ri = createIterator(start); List<Date> dates = new ArrayList<Date>(); while (ri.hasNext()) { Date nextDate = ri.next(); if (nextDate.after(end)) { break; } dates.add(nextDate); } return dates; }
public DateRecurrenceIterator createIterator(Date now) { RRule rrule = createRRule(); try { Log.d("RRULE", "Creating iterator for " + rrule.toIcal()); if (now.before(startDate.getTime())) { now = startDate.getTime(); } Calendar c = Calendar.getInstance(); c.setTime(startDate.getTime()); // c.set(Calendar.HOUR_OF_DAY, startDate.get(Calendar.HOUR_OF_DAY)); // c.set(Calendar.MINUTE, startDate.get(Calendar.MINUTE)); // c.set(Calendar.SECOND, startDate.get(Calendar.SECOND)); c.set(Calendar.MILLISECOND, 0); return DateRecurrenceIterator.create(rrule, now, c.getTime()); } catch (ParseException e) { Log.w("RRULE", "Unable to create iterator for " + rrule.toIcal()); return DateRecurrenceIterator.empty(); } }