查找日期范围之间的事件



我目前正在我的应用程序中使用jfxtras iCalendarAgenda。我需要从 vcalendar 中检索给定日期范围之间的事件列表。我需要它返回具有实际日期时间的事件,而不是在日期范围之间发生

重复的事件。我尝试过使用 ical4j 和他们的过滤器库。不幸的是,我一直没有成功尝试正确设置此插件,因为它似乎找不到所需的依赖项。(我试着把它和它的依赖关系放在我的pom中。XML 文件)。我还发现了很多递归规则解析器,但不清楚它们是否支持 jfxtras 正在使用的事件中的其他参数,例如递归 ID 和递归。我还发现可以使用 vfreebusy 对象来执行此操作,但我找不到有关此的更多信息。最后,我知道 jfxtras 必须在某个地方执行此操作,因此它知道要显示什么,但我找不到它在哪里,我找不到可以从它们那里做到这一点的方法。

寻找可以做到这一点的库或如何设置 ical4j 的链接。因为目前还不清楚如何使用 maven 进行设置。

我写了iCalendarAgenda。 它附带一个名为iCalendarFX(在我的Github帐户中也称为icalendar-lib)的iCalendar库,它可以做你想做的事。 我不知道ical4j是否有能力。

使用 iCalendarFX,我会过滤来自 VCalendar 的 Vevents 流,并过滤出满足您要求的 Vevent。 它会是这样的:

VCalendar vCalendar = VCalendar.parse(content); // replace with your vCalendar
LocalDateTime startTime = null; // set somewhere
LocalDateTime endTime = null; // set somewhere
List<VEvent> eventsBetweenStartAndEnd = vCalendar.getVEvents().stream()
.filter(e -> {
LocalDateTime myStartLocalDateTime = LocalDateTime.from(e.getDateTimeStart().getValue());
boolean isOnOrAfterStart = ! myStartLocalDateTime.isBefore(startTime);
boolean isOnOrBeforeEnd = ! myStartLocalDateTime.isAfter(endTime);
return isOnOrAfterStart && isOnOrBeforeEnd;
})
.collect(Collectors.toList());

相关内容

  • 没有找到相关文章

最新更新