Arbeiten mit Wiederholungen
Arbeiten mit täglichen Wiederholungen
Aspose.Email unterstützt die Erstellung täglicher Wiederholungen mit MapiCalendarDailyRecurrencePattern. Drei verschiedene Mapi‑Kalender‑Wiederholungs‑Endtypen können verwendet werden, darunter EndAfterNOccurrences, EndAfterDate und NeverEnd. Dieser Abschnitt demonstriert die Erstellung verschiedener täglicher Wiederholungsmuster.
Tägliche Wiederholungen: Typ EndAfterNOccurrence
Bei diesem Wiederholungstyp muss die Anzahl der Wiederholungen zusammen mit weiteren Angaben wie folgt gesetzt werden:
- Setzen Sie Start-, End- und Fälligkeitsdatum.
- Erstellen Sie ein MapiTask.
- Setzen Sie den Aufgabenstatus auf NotAssigned.
- Erzeugen Sie das tägliche Wiederholungsobjekt, indem Sie Eigenschaften wie PatternType, Period, WeekStartDay, EndType und OccurenceCount setzen.
- Setzen Sie die Eigenschaft MapiTask.setRecurrence auf dieses tägliche Wiederholungsobjekt.
- Speichern Sie diese Nachricht auf der Festplatte.
Das folgende Code‑Snippet zeigt, wie man eine Aufgabe mit dem Wiederholungs‑Endtyp EndAfterNOccurrence erstellt.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = RunExamples.getDataDir_Outlook();
Date startDate = getDate(2015, 7, 16);
Date dueDate = getDate(2015, 7, 16);
Date endByDate = getDate(2015, 8, 1);
MapiTask task = new MapiTask("This is test task", "Sample Body", startDate, dueDate);
task.setState(MapiTaskState.NotAssigned);
// Set the Daily recurrence
MapiCalendarDailyRecurrencePattern rec = new MapiCalendarDailyRecurrencePattern();
rec.setPatternType(MapiCalendarRecurrencePatternType.Day);
rec.setPeriod(1);
rec.setWeekStartDay(DayOfWeek.Sunday);
rec.setEndType(MapiCalendarRecurrenceEndType.EndAfterNOccurrences);
rec.setOccurrenceCount(getOccurrenceCount(startDate, endByDate, "FREQ=DAILY"));
if (rec.getOccurrenceCount() == 0)
{
rec.setOccurrenceCount(1);
}
task.setRecurrence(rec);
task.save(dataDir + "Daily_out.msg", TaskSaveFormat.Msg);
Die folgende Funktion kann verwendet werden, um die Anzahl der Ereignisse zwischen den beiden Daten zu berechnen:
private static long getOccurrenceCount(Date start, Date endBy, String rrule)
{
DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
CalendarRecurrence pattern = new CalendarRecurrence("DTSTART:" + formatter.format(start) + "\r\nRRULE:" + rrule);
DateCollection dates = pattern.generateOccurrences(start, endBy);
return dates.size();
}
Festlegen des Werts für die Anzahl der Wiederholungen
Das folgende Code‑Snippet zeigt, wie man den Wert für die Anzahl der Wiederholungen festlegt.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Set the Daily recurrence
MapiCalendarDailyRecurrencePattern record = new MapiCalendarDailyRecurrencePattern();
record.setPatternType(MapiCalendarRecurrencePatternType.Day);
record.setPeriod(1);
record.setWeekStartDay(DayOfWeek.Sunday);
record.setEndType(MapiCalendarRecurrenceEndType.EndAfterNOccurrences);
record.setOccurrenceCount(5);
task.setRecurrence(record);
Tägliche Wiederholungen: Typ EndAfterDate
Die Option „End By“ in der Mapi‑Task wird erreicht, indem die durch die getOccurrenceCount()‑Funktion berechnete OccurrenceCount-Eigenschaft gesetzt wird. Diese Funktion benötigt Startdatum, Enddatum und RRULE‑String.
Tägliche Wiederholungen: Einstellung des Every‑Day‑Werts
Das folgende Code‑Snippet zeigt, wie man den Period‑Wert auf 1 und den INTERVAL‑Wert ebenfalls auf 1 im RRULE‑String setzt.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Set the Daily recurrence
MapiCalendarDailyRecurrencePattern record = new MapiCalendarDailyRecurrencePattern();
record.setPatternType(MapiCalendarRecurrencePatternType.Day);
record.setPeriod(1);
record.setEndType(MapiCalendarRecurrenceEndType.EndAfterDate);
record.setOccurrenceCount(getOccurrenceCount(startDate, endByDate, "FREQ=DAILY;INTERVAL=1"));
record.setEndDate(endByDate);
Der Wert Every Day kann, wie im folgenden Beispiel gezeigt, auf jeden passenden Wert gesetzt werden:
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Set the Daily recurrence
MapiCalendarDailyRecurrencePattern record = new MapiCalendarDailyRecurrencePattern();
record.setPatternType(MapiCalendarRecurrencePatternType.Day);
record.setPeriod(2);
record.setEndType(MapiCalendarRecurrenceEndType.EndAfterDate);
record.setOccurrenceCount(getOccurrenceCount(startDate, endByDate, "FREQ=DAILY;INTERVAL=2"));
Tägliche Wiederholungen: Typ NeverEnd
Der Endtyp kann mit MapiCalendarRecurrenceEndType.NeverEnd festgelegt werden. Period oder INTERVAL kann im folgenden Beispiel auf den gewünschten Wert, z. B. 1, gesetzt werden.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Set the Daily recurrence
MapiCalendarDailyRecurrencePattern record = new MapiCalendarDailyRecurrencePattern();
record.setPatternType(MapiCalendarRecurrencePatternType.Day);
record.setPeriod(1);
record.setEndType(MapiCalendarRecurrenceEndType.NeverEnd);
Arbeiten mit wöchentlichen Wiederholungen
Aspose.Email bietet umfangreiche Funktionen zur Erstellung wöchentlicher Wiederholungen mit MapiCalendarWeeklyRecurrencePattern. Drei verschiedene Mapi‑Kalender‑Wiederholungs‑Endtypen können verwendet werden, darunter EndAfterNOccurrences, EndAfterDate und NeverEnd. Dieser Abschnitt demonstriert die Erstellung verschiedener wöchentlicher Wiederholungsmuster.
Wöchentliche Wiederholungen: Typ EndAfterNOccurrences
Bei diesem Wiederholungstyp muss die Anzahl der Wiederholungen zusammen mit weiteren Angaben wie folgt gesetzt werden:
- Setzen Sie Start-, End- und Fälligkeitsdatum.
- Erstellen Sie ein MapiTask.
- Setzen Sie den Aufgabenstatus auf NotAssigned.
- Erzeugen Sie das wöchentliche Wiederholungsobjekt, indem Sie Eigenschaften wie PatternType, Period, WeekStartDay, EndType und OccurenceCount setzen.
- Setzen Sie die Eigenschaft MapiTask.setRecurrence auf dieses wöchentliche Wiederholungsobjekt.
- Speichern Sie diese Nachricht auf der Festplatte.
Das folgende Code‑Snippet zeigt, wie man eine Aufgabe mit dem Wiederholungs‑Endtyp EndAfterNOccurrence erstellt.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = RunExamples.getDataDir_Outlook();
Date startDate = getDate(2015, 7, 16);
Date dueDate = getDate(2015, 7, 16);
Date endByDate = getDate(2015, 9, 1);
MapiTask task = new MapiTask("This is test task", "Sample Body", startDate, dueDate);
task.setState(MapiTaskState.NotAssigned);
// Set the weekly recurrence
MapiCalendarWeeklyRecurrencePattern rec = new MapiCalendarWeeklyRecurrencePattern();
rec.setEndType(MapiCalendarRecurrenceEndType.EndAfterNOccurrences);
rec.setPatternType(MapiCalendarRecurrencePatternType.Week);
rec.setPeriod(1);
rec.setWeekStartDay(DayOfWeek.Sunday);
rec.setDayOfWeek(MapiCalendarDayOfWeek.Friday);
rec.setOccurrenceCount(getOccurrenceCount(startDate, endByDate, "FREQ=WEEKLY;BYDAY=FR"));
if (rec.getOccurrenceCount() == 0)
{
rec.setOccurrenceCount(1);
}
task.setRecurrence(rec);
task.save(dataDir + "Weekly_out.msg", TaskSaveFormat.Msg);
Die folgende Funktion kann verwendet werden, um die Anzahl der Ereignisse zwischen den beiden Daten zu berechnen:
private static long getOccurrenceCount(Date start, Date endBy, String rrule)
{
DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
CalendarRecurrence pattern = new CalendarRecurrence("DTSTART:" + formatter.format(start) + "\r\nRRULE:" + rrule);
DateCollection dates = pattern.generateOccurrences(start, endBy);
return dates.size();
}
Mehrere Tage einer Woche auswählen
Das folgende Code‑Snippet zeigt, wie man mehrere Tage einer Woche auswählt.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Set the weekly recurrence
MapiCalendarWeeklyRecurrencePattern rec = new MapiCalendarWeeklyRecurrencePattern();
rec.setEndType(MapiCalendarRecurrenceEndType.EndAfterNOccurrences);
rec.setPatternType(MapiCalendarRecurrencePatternType.Week);
rec.setPeriod(1);
rec.setWeekStartDay(DayOfWeek.Sunday);
rec.setDayOfWeek(MapiCalendarDayOfWeek.Friday | MapiCalendarDayOfWeek.Monday);
rec.setOccurrenceCount(getOccurrenceCount(startDate, endByDate, "FREQ=WEEKLY;BYDAY=FR,MO"));
Mehrere Tage einer Woche auswählen und Intervalle festlegen
Das folgende Code‑Snippet zeigt, wie man mehrere Tage einer Woche auswählt und Intervalle festlegt.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Set the weekly recurrence
MapiCalendarWeeklyRecurrencePattern rec = new MapiCalendarWeeklyRecurrencePattern();
rec.setEndType(MapiCalendarRecurrenceEndType.EndAfterNOccurrences);
rec.setPatternType(MapiCalendarRecurrencePatternType.Week);
rec.setPeriod(2);
rec.setWeekStartDay(DayOfWeek.Sunday);
rec.setDayOfWeek(MapiCalendarDayOfWeek.Friday | MapiCalendarDayOfWeek.Monday);
rec.setOccurrenceCount(getOccurrenceCount(startDate, endByDate, "FREQ=WEEKLY;BYDAY=FR,MO;INTERVAL=2"));
Wöchentliche Wiederholungen: Typ EndAfterDate
Die Option „End By“ in der Mapi‑Task wird erreicht, indem die durch die getOccurrenceCount()‑Funktion berechnete OccurrenceCount-Eigenschaft gesetzt wird. Diese Funktion benötigt Startdatum, Enddatum und RRULE‑String.
Wöchentliche Wiederholungen: Einstellung des Every‑Day‑Werts
Das folgende Code‑Snippet zeigt, wie man den Period‑Wert auf 1 und den INTERVAL‑Wert ebenfalls auf 1 im RRULE‑String setzt.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Set the weekly recurrence
MapiCalendarWeeklyRecurrencePattern rec = new MapiCalendarWeeklyRecurrencePattern();
rec.setEndType(MapiCalendarRecurrenceEndType.EndAfterDate);
rec.setPatternType(MapiCalendarRecurrencePatternType.Week);
rec.setPeriod(1);
rec.setWeekStartDay(DayOfWeek.Sunday);
rec.setDayOfWeek(MapiCalendarDayOfWeek.Friday);
rec.setEndDate(endByDate);
rec.setOccurrenceCount(getOccurrenceCount(startDate, endByDate, "FREQ=WEEKLY;BYDAY=FR;INTERVAL=1"));
Der Wert Every Day kann auf einen beliebigen passenden Wert gesetzt werden und mehrere Tage können, wie im folgenden Beispiel gezeigt, ausgewählt werden:
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
MapiCalendarWeeklyRecurrencePattern record = new MapiCalendarWeeklyRecurrencePattern();
record.setEndType(MapiCalendarRecurrenceEndType.EndAfterDate);
record.setPatternType(MapiCalendarRecurrencePatternType.Week);
record.setPeriod(2);
record.setWeekStartDay(DayOfWeek.Sunday);
record.setEndDate(endByDate);
record.setDayOfWeek(MapiCalendarDayOfWeek.Friday | MapiCalendarDayOfWeek.Monday);
record.setOccurrenceCount(getOccurrenceCount(startDate, endByDate, "FREQ=WEEKLY;BYDAY=FR,MO;INTERVAL=2"));
Wöchentliche Wiederholungen: Typ NeverEnd
Der Endtyp kann mit MapiCalendarRecurrenceEndType.NeverEnd festgelegt werden. Period oder INTERVAL kann im folgenden Beispiel auf den gewünschten Wert, z. B. 1, gesetzt werden.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Set the weekly recurrence
MapiCalendarWeeklyRecurrencePattern recurrence = new MapiCalendarWeeklyRecurrencePattern();
recurrence.setEndType(MapiCalendarRecurrenceEndType.NeverEnd);
recurrence.setPatternType(MapiCalendarRecurrencePatternType.Week);
recurrence.setPeriod(1);
recurrence.setWeekStartDay(DayOfWeek.Sunday);
recurrence.setDayOfWeek(MapiCalendarDayOfWeek.Friday);
recurrence.setOccurrenceCount(getOccurrenceCount(startDate, endByDate, "FREQ=WEEKLY;BYDAY=FR"));
Arbeiten mit monatlichen Wiederholungen
Aspose.Email unterstützt die Erstellung monatlicher Wiederholungen mit MapiCalendarMonthlyRecurrencePattern. Drei verschiedene Mapi‑Kalender‑Wiederholungs‑Endtypen können verwendet werden, darunter EndAfterNOccurrences, EndAfterDate und NeverEnd. Dieser Abschnitt demonstriert die Erstellung verschiedener monatlicher Wiederholungsmuster.
Monatliche Wiederholungen: Typ EndAfterNOccurrences
Bei diesem Wiederholungstyp muss die Anzahl der Wiederholungen zusammen mit weiteren Angaben wie folgt gesetzt werden:
- Setzen Sie Start-, End- und Fälligkeitsdatum.
- Erstellen Sie ein MapiTask.
- Setzen Sie den Aufgabenstatus auf NotAssigned.
- Erzeugen Sie das monatliche Wiederholungsobjekt, indem Sie Eigenschaften wie PatternType, Period, WeekStartDay, EndType und OccurenceCount setzen.
- Setzen Sie die Eigenschaft MapiTask.setRecurrence auf dieses monatliche Wiederholungsobjekt.
- Speichern Sie diese Nachricht auf der Festplatte.
Das folgende Code‑Snippet zeigt, wie man eine Aufgabe mit dem Wiederholungs‑Endtyp EndAfterNOccurrence erstellt.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// The path to the File directory.
String dataDir = RunExamples.getDataDir_Outlook();
Date startDate = getDate(2015, 7, 16);
Date DueDate = getDate(2015, 7, 16);
Date endByDate = getDate(2015, 12, 31);
MapiTask task = new MapiTask("This is test task", "Sample Body", startDate, dueDate);
task.setState(MapiTaskState.NotAssigned);
// Set the Monthly recurrence
MapiCalendarMonthlyRecurrencePattern rec = new MapiCalendarMonthlyRecurrencePattern();
rec.setDay(15);
rec.setPeriod(1);
rec.setPatternType(MapiCalendarRecurrencePatternType.Month);
rec.setEndType(MapiCalendarRecurrenceEndType.EndAfterNOccurrences);
rec.setOccurrenceCount(getOccurrenceCount(startDate, endByDate, "FREQ=MONTHLY;BYMONTHDAY=15;INTERVAL=1"));
rec.setWeekStartDay(DayOfWeek.Monday);
if (rec.getOccurrenceCount() == 0)
{
rec.setOccurrenceCount(1);
}
task.setRecurrence(rec);
task.save(dataDir + "Monthly_out.msg", TaskSaveFormat.Msg);
Die folgende Funktion kann verwendet werden, um die Anzahl der Ereignisse zwischen zwei Daten zu berechnen:
private static long getOccurrenceCount(Date start, Date endBy, String rrule)
{
DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
CalendarRecurrence pattern = new CalendarRecurrence("DTSTART:" + formatter.format(start) + "\r\nRRULE:" + rrule);
DateCollection dates = pattern.generateOccurrences(start, endBy);
return dates.size();
}
Feste Anzahl von Wiederholungen festlegen
Das folgende Code‑Snippet zeigt, wie man eine feste Anzahl von Wiederholungen festlegt.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Set the Monthly recurrence
MapiCalendarMonthlyRecurrencePattern records = new MapiCalendarMonthlyRecurrencePattern();
records.setDay(15);
records.setPeriod(1);
records.setPatternType(MapiCalendarRecurrencePatternType.Month);
records.setEndType(MapiCalendarRecurrenceEndType.EndAfterNOccurrences);
records.setOccurrenceCount(5);
records.setWeekStartDay(DayOfWeek.Monday);
Monatliche Wiederholungen: Typ EndAfterDate
Die Option „End By“ in der Mapi‑Task wird erreicht, indem die durch die getOccurrenceCount()‑Funktion berechnete OccurrenceCount-Eigenschaft gesetzt wird. Diese Funktion benötigt Startdatum, Enddatum und RRULE‑String. Das folgende Code‑Snippet zeigt, wie man eine Wiederholung am 15. jedes Monats zwischen Start‑ und Enddatum erstellt.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = RunExamples.getDataDir_Outlook();
Date startDate = getDate(2015, 7, 1);
Date dueDate = getDate(2015, 7, 1);
Date endByDate = getDate(2015, 12, 31);
MapiTask task = new MapiTask("This is test task", "Sample Body", startDate, dueDate);
task.setState(MapiTaskState.NotAssigned);
// Set the Monthly recurrence
MapiCalendarMonthlyRecurrencePattern recurrence = new MapiCalendarMonthlyRecurrencePattern();
recurrence.setDay(15);
recurrence.setPeriod(1);
recurrence.setPatternType(MapiCalendarRecurrencePatternType.Month);
recurrence.setEndType(MapiCalendarRecurrenceEndType.EndAfterDate);
recurrence.setOccurrenceCount(getOccurrenceCount(startDate, endByDate, "FREQ=MONTHLY;BYMONTHDAY=15;INTERVAL=1"));
recurrence.setWeekStartDay(DayOfWeek.Monday);
recurrence.setEndDate(endByDate);
task.setRecurrence(recurrence);
task.save(dataDir + "SetMonthlyEndAfterDateRecurrence_out.msg", TaskSaveFormat.Msg);
Monatliche Wiederholungen: Typ NeverEnd
Das folgende Code‑Snippet zeigt, wie der Endtyp mit MapiCalendarRecurrenceEndType.NeverEnd festgelegt werden kann.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
MapiCalendarMonthlyRecurrencePattern recurrence = new MapiCalendarMonthlyRecurrencePattern();
recurrence.setDay(15);
recurrence.setPeriod(1);
recurrence.setPatternType(MapiCalendarRecurrencePatternType.Month);
recurrence.setEndType(MapiCalendarRecurrenceEndType.NeverEnd);
recurrence.setWeekStartDay(DayOfWeek.Monday);
Arbeiten mit jährlichen Wiederholungen
Aspose.Email unterstützt die Erstellung jährlicher Wiederholungen mit MapiCalendarMonthlyRecurrencePattern. Indem man die Perioden‑Eigenschaft auf 12 setzt, kann man das jährliche Wiederholungsmuster erreichen. Es können drei verschiedene Mapi‑Kalender‑Wiederholungs‑Endtypen verwendet werden, darunter EndAfterNOccurrences, EndAfterDate und NeverEnd. Dieser Abschnitt demonstriert die Erstellung verschiedener jährlicher Wiederholungsmuster.
Jährliche Wiederholungen: Typ EndAfterNOccurrences
Bei diesem Wiederholungstyp muss die Anzahl der Wiederholungen zusammen mit weiteren Angaben wie folgt gesetzt werden:
- Setzen Sie Start-, End- und Fälligkeitsdatum.
- Erstellen Sie ein MapiTask.
- Setzen Sie den Aufgabenstatus auf NotAssigned.
- Erzeugen Sie das monatliche Wiederholungsobjekt, indem Sie Eigenschaften wie PatternType, Period, WeekStartDay, EndType und OccurenceCount setzen.
- Setzen Sie die Eigenschaft MapiTask.setRecurrence auf dieses monatliche Wiederholungsobjekt, um die jährliche Wiederholung zu erzielen.
- Speichern Sie diese Nachricht auf der Festplatte.
Das folgende Code‑Snippet zeigt, wie man eine Aufgabe mit dem Wiederholungs‑Endtyp EndAfterNOccurrence erstellt.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
Date startDate = getDate(2015, 7, 1);
Date dueDate = getDate(2015, 7, 1);
MapiTask task = new MapiTask("This is test task", "Sample Body", startDate, dueDate);
task.setState(MapiTaskState.NotAssigned);
// Set the Yearly recurrence
MapiCalendarMonthlyRecurrencePattern recurrence = new MapiCalendarMonthlyRecurrencePattern();
recurrence.setDay(15);
recurrence.setPeriod(12);
recurrence.setPatternType(MapiCalendarRecurrencePatternType.Month);
recurrence.setEndType(MapiCalendarRecurrenceEndType.EndAfterNOccurrences);
recurrence.setOccurrenceCount(3);
task.setRecurrence(recurrence);
task.save("Yearly.msg", TaskSaveFormat.Msg);
Jährliche Wiederholungen: Typ EndAfterDate
Die Option „End By“ in der Mapi‑Task wird erreicht, indem die durch die getOccurrenceCount()‑Funktion berechnete OccurrenceCount-Eigenschaft gesetzt wird. Diese Funktion benötigt Startdatum, Enddatum und RRULE‑String. Das folgende Code‑Snippet zeigt, wie man eine Wiederholung am 15. jedes 7. Monats zwischen Start‑ und Enddatum erstellt.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Set the Yearly recurrence
MapiCalendarMonthlyRecurrencePattern rec = new MapiCalendarMonthlyRecurrencePattern();
rec.setDay(15);
rec.setPeriod(12);
rec.setPatternType(MapiCalendarRecurrencePatternType.Month);
rec.setEndType(MapiCalendarRecurrenceEndType.EndAfterDate);
rec.setEndDate(endByDate);
rec.setOccurrenceCount(getOccurrenceCount(startDate, endByDate, "FREQ=YEARLY;BYMONTHDAY=15;BYMONTH=7;INTERVAL=1"));
Jährliche Wiederholungen: Typ NeverEnd
Das folgende Code‑Snippet zeigt, wie der Endtyp mit MapiCalendarRecurrenceEndType.NeverEnd festgelegt werden kann.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Set the Yearly recurrence
MapiCalendarMonthlyRecurrencePattern recurrence = new MapiCalendarMonthlyRecurrencePattern();
recurrence.setDay(15);
recurrence.setPeriod(12);
recurrence.setPatternType(MapiCalendarRecurrencePatternType.Month);
recurrence.setEndType(MapiCalendarRecurrenceEndType.NeverEnd);
Wiederholung aus Wiederholungsregel erzeugen
Die Aspose.Email‑API ermöglicht das Erzeugen eines Wiederholungsmusters aus einer Wiederholungsregel (RRULE). Sie analysiert die Information aus der RRULE gemäß RFC 5545 iCal‑Spezifikation und erzeugt das Wiederholungsmuster mittels der MapiCalendarRecurrencePatternFactory.fromString‑Methode. Das folgende Code‑Snippet zeigt, wie man ein Wiederholungsmuster aus der Wiederholungsregel erzeugt.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = RunExamples.getDataDir_Outlook();
Date startDate = getDate(2015, 7, 16);
Date endDate = getDate(2015, 8, 1);
MapiCalendar app1 = new MapiCalendar("test location", "test summary", "test description", startDate, endDate);
app1.setStartDate(startDate);
app1.setEndDate(endDate);
String pattern = "DTSTART;TZID=Europe/London:20150831T080000\r\nDTEND;TZID=Europe/London:20150831T083000\r\nRRULE:FREQ=DAILY;INTERVAL=1;COUNT=7\r\nEXDATE:20150831T070000Z,20150904T070000Z";
app1.getRecurrence().setRecurrencePattern(MapiCalendarRecurrencePatternFactory.fromString(pattern));
Anhang zu wiederkehrenden Kalenderelementen hinzufügen
Die Aspose.Email‑API ermöglicht das Hinzufügen von Anhängen zu wiederkehrenden Kalenderelementen.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
String dataDir = RunExamples.getDataDir_Outlook();
Date startDate = addHours(getDate(2018, 7, 19), 12);
MapiCalendar calendar = new MapiCalendar("location1", "summary1", "description1", startDate, addHours(startDate, 1));
MapiCalendarEventRecurrence recurrence = new MapiCalendarEventRecurrence();
MapiCalendarRecurrencePattern pattern = new MapiCalendarDailyRecurrencePattern();
recurrence.setRecurrencePattern(pattern);
pattern.setPatternType(MapiCalendarRecurrencePatternType.Day);
pattern.setPeriod(1);
pattern.setEndType(MapiCalendarRecurrenceEndType.NeverEnd);
Date exceptionDate = addDays(startDate, 3);
MapiCalendarExceptionInfo exception = new MapiCalendarExceptionInfo();
exception.setLocation("exceptionLoc");
exception.setSubject("exceptionSubj");
exception.setBody("exceptionBody");
exception.setOriginalStartDate(exceptionDate);
exception.setStartDateTime(exceptionDate);
exception.setEndDateTime(addHours(exceptionDate, 5));
exception.setAttachments(new MapiAttachmentCollection(calendar));
exception.getAttachments().add("file.txt", "hello, world!".getBytes());
pattern.getExceptions().addItem(exception);
pattern.getModifiedInstanceDates().addItem(exceptionDate);
pattern.getDeletedInstanceDates().addItem(exceptionDate);
calendar.setRecurrence(recurrence);
try (PersonalStorage newPst = PersonalStorage.create(dataDir + "AddAttachmentToMapiExceptionInfo.pst", FileFormatVersion.Unicode))
{
FolderInfo newFolder = newPst.createPredefinedFolder("Calendar", StandardIpmFolder.Appointments);
newFolder.addMapiMessageItem(calendar);
}
Kalenderereignis-Zeitzone festlegen
Die Aspose.Email‑API ermöglicht das Festlegen der Kalenderzeitzone:
- Zeitzoneninformationen für das Start‑/Enddatum
- Zeitzoneninformationen für ein wiederkehrendes Meeting
- Zeitzoneninformationen, die beschreiben, wie das Datum und die Uhrzeit eines wiederkehrenden Termins in UTC umgerechnet werden und zurück
Das folgende Code‑Snippet zeigt, wie man Zeitzoneninformationen für den Kalender festlegt:
MapiCalendar event = new MapiCalendar("location", "summary", "description", startDate, endDate);
// UTC time zone
MapiCalendarTimeZone utcTimeZone = new MapiCalendarTimeZone("UTC");
event.setStartDateTimeZone(utcTimeZone);
event.setEndDateTimeZone(utcTimeZone);
MapiCalendarDailyRecurrencePattern pattern = new MapiCalendarDailyRecurrencePattern();
pattern.setPeriod(1);
pattern.setStartDate(startDate);
pattern.setEndDate(untilDate);
pattern.setEndType(MapiCalendarRecurrenceEndType.EndAfterDate);
pattern.setPatternType(MapiCalendarRecurrencePatternType.Day);
pattern.setDayOfWeek(DayOfWeek.Monday);
MapiCalendarEventRecurrence r = new MapiCalendarEventRecurrence();
r.setRecurrencePattern(pattern);
r.setClipStart(startDate);
r.setClipEnd(pattern.getEndDate());
//https://docs.microsoft.com/en-us/office/client-developer/outlook/mapi/pidlidappointmenttimezonedefinitionrecur-canonical-property
r.setAppointmentTimeZoneDefinitionRecur(utcTimeZone); // <---
r.setTimeZoneStruct(utcTimeZone); // <---
event.setRecurrence(r);