`
汉唐铁骑破虏用刀
  • 浏览: 32622 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

iCal4j的一些使用技巧

 
阅读更多
一些基本的操作在一下这个链接中都有
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,用于解析和构建iCalendar数据模型的Java库.zip

    使用ical4j库,开发者可以轻松地在Java应用中集成日历功能,例如在电子邮件客户端、日历应用或协同办公软件中。同时,由于ical4j是开源项目,用户可以根据需要对库进行扩展或定制,以满足特定的需求。 为了开始使用...

    ical4j-1.0.3-src

    ical4j是一个强大的Java库,专门用于处理iCalendar(RFC5545)格式的数据,如日历事件、任务和提醒。...通过深入理解并使用ical4j-1.0.3-src,开发者可以创建更高效、更个性化的iCalendar解决方案。

    ical4j,用于解析和构建ICANDEAR数据模型的Java库.zip

    这意味着使用ical4j开发的应用程序可以与其他遵循同样标准的日历应用(如Google Calendar、Microsoft Outlook等)无缝交互。 6. **开源项目**:ical4j是开源软件,遵循Apache 2.0许可证。这意味着任何人都可以自由...

    ical4j-1.0.jar

    为了使用ical4j-1.0.jar,你需要将它添加到你的Java项目的类路径中。如果你使用Maven,可以在pom.xml文件中添加依赖,如果是Gradle,可以在build.gradle文件中声明。之后,你就可以通过导入相关的类和接口,开始编写...

    ical4j-2.0-beta1.zip

    在使用ical4j时,开发者需要了解如何处理iCalendar对象,如VEvent(事件)、VTodo(待办事项)和VJournal(日志)。而使用Azure SDK for Java,开发者则需要熟悉Azure服务的架构和概念,例如Azure Active Directory...

    ical4j:用于解析和构建iCalendar数据模型的Java库

    您将在和整个找到有关如何使用iCal4j的示例。 可以在找到每个版本中包含的更改的详细说明。 iCal4j是在软件的帮助下创建的。建立系统要求3.x版-Java 8或更高版本2.x版-Java 7或更高版本依存关系为了可移植性和与尽...

    ical4j-用户指南:iCal4j用户文档

    本指南将深入探讨ical4j库的使用方法,帮助开发者理解和操作iCalendar数据。 ### iCalendar标准 iCalendar是一种基于文本的数据交换格式,它允许用户在不同的应用程序之间共享日历信息。iCalendar文件通常以.ics为...

    iCal4j-开源

    在使用ical4j-3.0.0版本时,开发者需要注意该版本可能已经包含了对iCalendar规范的最新实现和修复的一些已知问题。通过查阅官方文档或社区资源,可以获取详细的使用指南和示例代码,以帮助更好地理解和利用iCal4j的...

    Laravel开发-laravel-ical

    4. **读取 iCal**:同样,该包也支持从 iCal 文件中读取事件。可以加载 iCal 文件,解析其内容,获取事件列表,并在 Laravel 应用中使用这些事件数据。 5. **中间件**:为了提供安全的 iCal 文件访问,`laravel-...

    前端项目-ical.js.zip

    1. 解析ICS和VCARD文件或字符串:开发者可以使用`ical.js`将接收到的数据转换为JavaScript对象,便于进一步处理。 2. 事件提取:对于ICS数据,库可能提供方法来提取特定类型的事件,如会议、生日等。 3. 时间区处理...

    ical.net:ical.NET-.NET的开源iCal库

    Wiki包含ical.net常见使用场景示例的几页。 版本控制 ical.net使用。 简而言之: 给定版本号MAJOR.MINOR.PATCH,增加: 当您进行不兼容的API更改时的主要版本, MINOR版本,当您以向后兼容的方式添加功能时,以及...

    iCal-like+Calendars

    标题 "iCal-like Calendars" 指的是一个模仿苹果公司iCal(iCalendar)风格的日历应用或组件。iCal是苹果操作系统中内置的一款功能强大的日历应用程序,以其直观的用户界面和丰富的功能而闻名。这个项目可能是为了在...

    exp4j.jar包下载

    ical4j-1.0.jar java 发送邮件日历提醒功能所需jar包

    ical.js:javascript的ical

    ical.js (以前是节点的) javascript / node( )的容忍的,最小的icalendar解析器安装-Node.js ical.js在npm上可用: npm install ical原料药ical.parseICS(str) 用ICS文件解析字符串var data = ical.parseFile&#...

    iCal-节假日例子.zip 国家法定假日(iCal 格式)

    4. **其他辅助文件**:可能包括配置文件、模板、示例数据等,帮助用户更好地理解和使用iCal事件。 要使用这些iCal文件,你可以: 1. 将.ics文件导入到支持iCal的日历应用中,如Apple的iCal、Microsoft Outlook,...

    iCal个人日程管理软件V1.6.421绿色中文免费版

    iCal个人日程管理软件可以帮助你合理安排每天、每周、每月的日程,实现时间管理的概念。iCal_1.0.45 ·在自用软件iCal_1.0的基础上进行了以下修改后作为免费共享版推出  1、更换下拉式日历控件  2、更新“日”...

    中秋节节假日日历国家法定假日(iCal 格式)源码分享给需要的同学

    国家法定假日(iCal 格式) 已有的法定假日大部分不维护,索性自己写个。 有需要可以 clone 下来自己修改。 不局限节假日,任意活动都可以自行编辑。 如何运行 yarn install yarn run build 项目结构 . ├── ...

Global site tag (gtag.js) - Google Analytics