一些基本的操作在一下这个链接中都有
http://www.ibm.com/developerworks/cn/java/j-lo-ical4j/
做点补充
1.在Google gmail中如果想让邮件接收者直接添加日历到的日程当中需要如下设置:
ParameterList pls = new ParameterList();
pls.add(new Cn(mailInfo.getToEmail()));
pls.add(new Rsvp(true));
Attendee attendee = new Attendee(pls,mailInfo.getToEmail());
attendee.setCalAddress(new URI("mailto:"+mailInfo.getToEmail()));
vevent.getProperties().add(attendee);//参会者
2. 循环提醒,如果需要实现按周或者按每个月的第几天 或者每个月的第几周的第几天则需要构建 recur 具体代码如下:
public static Recur getRecurByCycle(ConfCycle cycle){
if(cycle!=null){
Recur recur = new Recur();
//周期信息
String cycleInfo = cycle.getCycleValue();
String infos[] = cycleInfo.split(";");
int index = 0 ;
List<Integer> indexs = new ArrayList<Integer>();
int seq = 0;
if(infos.length == 1){
String indexstr[] = infos[0].split(",");
for (int i = 0; i < indexstr.length; i++) {
indexs.add(Integer.parseInt(indexstr[i]));
}
index = indexs.get(0);
}else if(infos.length == 2){
seq = Integer.parseInt(infos[0]);
index = Integer.parseInt(infos[1]);
}
//周期的类型
int cycleType = cycle.getCycleType().intValue();
switch (cycleType) {
//按间隔多少天循环
case 1:
recur.setFrequency(Recur.DAILY);
recur.setInterval(index);
break;
//按每一周的周几 可以是每一周的一天或者多天
case 2:
recur.setFrequency(Recur.WEEKLY);
for (Integer weekday:indexs) {
switch (weekday) {
case 1:
recur.getDayList().add(WeekDay.SU);
break;
case 2:
recur.getDayList().add(WeekDay.MO);
break;
case 3:
recur.getDayList().add(WeekDay.TU);
break;
case 4:
recur.getDayList().add(WeekDay.WE);
break;
case 5:
recur.getDayList().add(WeekDay.TH);
break;
case 6:
recur.getDayList().add(WeekDay.FR);
break;
case 7:
recur.getDayList().add(WeekDay.SA);
break;
default:
throw new RuntimeException("un support week index!!!");
}
}
break;
//按月循环 可以按每个月的第几天
case 3:
recur.setFrequency(Recur.MONTHLY);
//按每月的第几周的周几
if(seq != 0){
switch (index) {
case 1:
recur.getDayList().add(WeekDay.SU);
break;
case 2:
recur.getDayList().add(WeekDay.MO);
break;
case 3:
recur.getDayList().add(WeekDay.TU);
break;
case 4:
recur.getDayList().add(WeekDay.WE);
break;
case 5:
recur.getDayList().add(WeekDay.TH);
break;
case 6:
recur.getDayList().add(WeekDay.FR);
break;
case 7:
recur.getDayList().add(WeekDay.SA);
break;
default:
throw new RuntimeException("un support week index!!!");
}
recur.getSetPosList().add(seq);
//按每月的第几天
}else{
recur.getMonthDayList().add(index);
}
break;
default:
throw new RuntimeException("un know cycle type! ");
}
boolean unlimited = cycle.getInfiniteFlag().intValue() == 0 ?false:true;
//设置结束周期
if (!unlimited) {
int count = cycle.getRepeatCount();
if(count>0){
recur.setCount(count);
}else{
recur.setUntil(new net.fortuna.ical4j.model.Date(cycle.getEndDate()));
}
}
return recur;
}
return null;
}
分享到:
相关推荐
使用ical4j库,开发者可以轻松地在Java应用中集成日历功能,例如在电子邮件客户端、日历应用或协同办公软件中。同时,由于ical4j是开源项目,用户可以根据需要对库进行扩展或定制,以满足特定的需求。 为了开始使用...
ical4j是一个强大的Java库,专门用于处理iCalendar(RFC5545)格式的数据,如日历事件、任务和提醒。...通过深入理解并使用ical4j-1.0.3-src,开发者可以创建更高效、更个性化的iCalendar解决方案。
这意味着使用ical4j开发的应用程序可以与其他遵循同样标准的日历应用(如Google Calendar、Microsoft Outlook等)无缝交互。 6. **开源项目**:ical4j是开源软件,遵循Apache 2.0许可证。这意味着任何人都可以自由...
为了使用ical4j-1.0.jar,你需要将它添加到你的Java项目的类路径中。如果你使用Maven,可以在pom.xml文件中添加依赖,如果是Gradle,可以在build.gradle文件中声明。之后,你就可以通过导入相关的类和接口,开始编写...
在使用ical4j时,开发者需要了解如何处理iCalendar对象,如VEvent(事件)、VTodo(待办事项)和VJournal(日志)。而使用Azure SDK for Java,开发者则需要熟悉Azure服务的架构和概念,例如Azure Active Directory...
您将在和整个找到有关如何使用iCal4j的示例。 可以在找到每个版本中包含的更改的详细说明。 iCal4j是在软件的帮助下创建的。建立系统要求3.x版-Java 8或更高版本2.x版-Java 7或更高版本依存关系为了可移植性和与尽...
本指南将深入探讨ical4j库的使用方法,帮助开发者理解和操作iCalendar数据。 ### iCalendar标准 iCalendar是一种基于文本的数据交换格式,它允许用户在不同的应用程序之间共享日历信息。iCalendar文件通常以.ics为...
在使用ical4j-3.0.0版本时,开发者需要注意该版本可能已经包含了对iCalendar规范的最新实现和修复的一些已知问题。通过查阅官方文档或社区资源,可以获取详细的使用指南和示例代码,以帮助更好地理解和利用iCal4j的...
4. **读取 iCal**:同样,该包也支持从 iCal 文件中读取事件。可以加载 iCal 文件,解析其内容,获取事件列表,并在 Laravel 应用中使用这些事件数据。 5. **中间件**:为了提供安全的 iCal 文件访问,`laravel-...
1. 解析ICS和VCARD文件或字符串:开发者可以使用`ical.js`将接收到的数据转换为JavaScript对象,便于进一步处理。 2. 事件提取:对于ICS数据,库可能提供方法来提取特定类型的事件,如会议、生日等。 3. 时间区处理...
Wiki包含ical.net常见使用场景示例的几页。 版本控制 ical.net使用。 简而言之: 给定版本号MAJOR.MINOR.PATCH,增加: 当您进行不兼容的API更改时的主要版本, MINOR版本,当您以向后兼容的方式添加功能时,以及...
标题 "iCal-like Calendars" 指的是一个模仿苹果公司iCal(iCalendar)风格的日历应用或组件。iCal是苹果操作系统中内置的一款功能强大的日历应用程序,以其直观的用户界面和丰富的功能而闻名。这个项目可能是为了在...
ical4j-1.0.jar java 发送邮件日历提醒功能所需jar包
ical.js (以前是节点的) javascript / node( )的容忍的,最小的icalendar解析器安装-Node.js ical.js在npm上可用: npm install ical原料药ical.parseICS(str) 用ICS文件解析字符串var data = ical.parseFile&#...
4. **其他辅助文件**:可能包括配置文件、模板、示例数据等,帮助用户更好地理解和使用iCal事件。 要使用这些iCal文件,你可以: 1. 将.ics文件导入到支持iCal的日历应用中,如Apple的iCal、Microsoft Outlook,...
iCal个人日程管理软件可以帮助你合理安排每天、每周、每月的日程,实现时间管理的概念。iCal_1.0.45 ·在自用软件iCal_1.0的基础上进行了以下修改后作为免费共享版推出 1、更换下拉式日历控件 2、更新“日”...
国家法定假日(iCal 格式) 已有的法定假日大部分不维护,索性自己写个。 有需要可以 clone 下来自己修改。 不局限节假日,任意活动都可以自行编辑。 如何运行 yarn install yarn run build 项目结构 . ├── ...