我有一个特定的要求来创建将在特定日期发生的日历事件.这不是每周,每月,每年都会发生的情况,但它可能会持续13天,14天,15天等.我有哪些日期会发生,但没有设定经常性日期.下面是我的代码
ContentValues calEvent = new ContentValues();
calEvent.put(CalendarContract.Events.CALENDAR_ID, 1);
calEvent.put(CalendarContract.Events.TITLE, title);
calEvent.put(CalendarContract.Events.DTSTART, d.getTime());
calEvent.put(CalendarContract.Events.DTEND, d.getTime()
+ (2 * 60 * 60 * 1000));
calEvent.put(CalendarContract.Events.HAS_ALARM, 1);
calEvent.put(CalendarContract.Events.EVENT_TIMEZONE, TimeZone
.getDefault().getID());
calEvent.put(CalendarContract.Events.EVENT_LOCATION, location);
calEvent.put(CalendarContract.Events.DESCRIPTION, description);
calEvent.put(CalendarContract.Events.RDATE, sdf1.format(d)
+ "T033000Z");
// calEvent.put(CalendarContract.Reminders.RRULE, value);
Uri uri = contentResolver.insert(
CalendarContract.Events.CONTENT_URI, calEvent);
// The returned Uri contains the content-retriever URI for the
// newly-inserted event, including its id
int id = Integer.parseInt(uri.getLastPathSegment());
// Toast.makeText(ctx, "Created Calendar Event " + id,
// Toast.LENGTH_SHORT).show();
eventId = eventId + (eventId.equalsIgnoreCase("") ? id : "," + id);
ContentValues calReminder = new ContentValues();
calReminder.put(CalendarContract.Reminders.MINUTES, minutes);
calReminder.put(CalendarContract.Reminders.EVENT_ID, id);
// calReminder.put(CalendarContract.Reminders.HAS_ALARM, 1);
calReminder.put(Reminders.METHOD, Reminders.METHOD_ALERT);
Uri uri1 = contentResolver.insert(
CalendarContract.Reminders.CONTENT_URI, calReminder);
// The returned Uri contains the content-retriever URI for the
// newly-inserted event, including its id
int id1 = Integer.parseInt(uri1.getLastPathSegment());
// Toast.makeText(ctx, "Created Calendar Reminder " + id1,
// Toast.LENGTH_SHORT).show();
reminderId = reminderId
+ (reminderId.equalsIgnoreCase("") ? id1 : "," + id1);
当我使用带有逗号分隔的日期值的RDATE时,因为有startdate&提供enddate,事件创建到startdate和amp;之间的所有日期.结束日期.