一些基本的操作在一下这个链接中都有
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-1.0.3-src,ical4j的源代码和jar文件
ical4j,用于解析和构建ICANDEAR数据模型的Java库.zip
ical4j-1.0.jar java 发送邮件日历提醒功能所需jar包
ical4j用户指南 iCal4j用户文档
azure-sdk-for-java.zip,这是微软azure sdk的核心模块。
目录
您将在和整个找到有关如何使用iCal4j的示例。 可以在找到每个版本中包含的更改的详细说明。 iCal4j是在软件的帮助下创建的。建立系统要求3.x版-Java 8或更高版本2.x版-Java 7或更高版本依存关系为了可移植性和与尽...
Laravel开发-laravel-ical 用于eLuceo/iCal包的Laravel 5包装
一个用于读写iCalendar(* .ics)文件的Java库。
前端项目-ical.js,用于ICS(RFC5545)和VCARD(RFC6350)数据的JavaScript解析器
ical4j-1.0.jar java 发送邮件日历提醒功能所需jar包
iCal个人日程管理软件可以帮助你合理安排每天、每周、每月的日程,实现时间管理的概念。iCal_1.0.45 ·在自用软件iCal_1.0的基础上进行了以下修改后作为免费共享版推出 1、更换下拉式日历控件 2、更新“日”...
Wiki包含ical.net常见使用场景示例的几页。 版本控制 ical.net使用。 简而言之: 给定版本号MAJOR.MINOR.PATCH,增加: 当您进行不兼容的API更改时的主要版本, MINOR版本,当您以向后兼容的方式添加功能时,以及...
ical.js (以前是节点的) javascript / node( )的容忍的,最小的icalendar解析器安装-Node.js ical.js在npm上可用: npm install ical原料药ical.parseICS(str) 用ICS文件解析字符串var data = ical.parseFile&#...
所有Controller入参,一律使用 DTO结尾进行交互 所有 DTO 命名,前面采用驼峰命名,后面DTO大写 所有DTO内参数,如果是一组,请用List<类型>进行接口,尽量不用分隔符隔开,然后字符串接收, 所有DTO放置在子模块Model下,...
漂亮的日程显示,如果大家觉得好用,我可以后续上传JAVA后台和前台的实现
Laravel开发-ical 为eLuceo/iCal包提供外观。