Фильтрация текущего события iCal4j
Я пытаюсь использовать библиотеку ical4j, чтобы найти текущее событие (или, по крайней мере, события, происходящие сегодня) в файле ical, который содержит повторяющиеся события. Мне удалось построить и распечатать все события в календаре, но я получаю
java.lang.IllegalArgumentException: Range start must be before range end
во время выполнения. Это странно, потому что мое правило периода явно начинается до того, как оно заканчивается. Я много читал и пробовал разные вещи, но я не в курсе. Вот суть того, чего я пытаюсь достичь:
private class CurrentShow extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
//params come from execute() call, params[0] is url
InputStream is = null;
net.fortuna.ical4j.model.Calendar calendar = new net.fortuna.ical4j.model.Calendar();
try {
is = new URL(urls[0]).openStream();
CalendarBuilder builder = new CalendarBuilder();
try {
calendar = builder.build(is);
} catch (Exception e) {
}
for (Iterator i = calendar.getComponents().iterator(); i.hasNext(); ) {
Component component = (Component) i.next();
System.out.println("Component [" + component.getName() + "]");
for (Iterator j = component.getProperties().iterator(); j.hasNext(); ) {
Property property = (Property) j.next();
System.out.println("Property [" + property.getName() + ", " + property.getValue() + "]");
}
}
java.util.Calendar today = java.util.Calendar.getInstance();
today.set(java.util.Calendar.HOUR_OF_DAY, 0);
today.clear(java.util.Calendar.MINUTE);
today.clear(java.util.Calendar.SECOND);
// create a period starting now with a duration of one (1) day..
Period period = new Period(new DateTime(today.getTime()), new Dur(1, 0, 0, 0));
Filter filter = new Filter(new Rule[] {new PeriodRule(period)}, Filter.MATCH_ALL);
Collection eventsToday = filter.filter(calendar.getComponents(Component.VEVENT));
Любая помощь будет оценена. Благодарю.