Tekrarlamalarla Çalışma
Günlük Tekrarlamalarla Çalışma
Aspose.Email, günlük tekrarlamaların oluşturulmasını şunu kullanarak destekler: MapiCalendarDailyRecurrencePatternÜç farklı Mapi takvim tekrarlama bitiş tipi, EndAfterNOccurrences, EndAfterDate ve NeverEnd kullanılabilir. Bu bölüm, farklı günlük tekrarlama desenlerinin oluşturulmasını gösterir.
Günlük Tekrarlamalar: EndAfterNOccurrence Bitiş Tipi
Bu tekrarlama tipinde, tekrarlama sayısı aşağıdaki gibi diğer bilgilerle birlikte ayarlanır:
- Başlangıç, bitiş ve teslim tarihlerini ayarlayın.
- Bir oluştur MapiTask.
- Görev durumunu NotAssigned olarak ayarlayın.
- PatternType, Period, WeekStartDay, EndType ve OccurenceCount gibi özellikleri ayarlayarak günlük tekrarlama nesnesi oluşturun.
- MapiTask.setRecurrence özelliğini bu günlük tekrarlama nesnesine ayarlayın.
- Bu mesajı diske kaydedin.
Aşağıdaki kod snippet’i, tekrarlama bitiş tipi EndAfterNOccurrence olarak ayarlanmış bir görev oluşturmayı gösterir.
// 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);
Aşağıdaki fonksiyon, iki tarih arasındaki etkinlik sayısını hesaplamak için kullanılabilir:
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();
}
Tekrar Sayısı Değerini Ayarlama
Aşağıdaki kod snippet’i, tekrar sayısı değerini nasıl ayarlayacağınızı gösterir.
// 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);
Günlük Tekrarlamalar: EndAfterDate Bitiş Tipi
"End By" seçeneği, Mapi Task’ta getOccurrenceCount() fonksiyonu ile hesaplanan OccurrenceCount özelliği ayarlanarak elde edilir. Bu fonksiyon başlangıç tarihi , bitiş tarihi ve RRULE dizesini alır.
Günlük Tekrarlamalar: Every Day Değerini Ayarlama
Aşağıdaki kod snippet’i, RRULE dizesinde period değerini 1 ve INTERVAL değerini 1 olarak ayarlamayı da gösterir.
// 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);
Every Day değeri, aşağıdaki örnekte gösterildiği gibi uygun bir değere ayarlanabilir:
// 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"));
Günlük Tekrarlamalar: NeverEnd Bitiş Tipi
Bitiş tipi, MapiCalendarRecurrenceEndType.NeverEnd kullanılarak ayarlanabilir. Period veya INTERVAL, aşağıdaki örnekte gerektiği gibi 1 olarak ayarlanabilir.
// 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);
Haftalık Tekrarlamalarla Çalışma
Aspose.Email, haftalık tekrarlamaların oluşturulması için şunu kullanarak zengin özellikler sunar: MapiCalendarWeeklyRecurrencePatternÜç farklı Mapi takvim tekrarlama bitiş tipi, EndAfterNOccurrences, EndAfterDate ve NeverEnd kullanılabilir. Bu bölüm, farklı haftalık tekrarlama desenlerinin oluşturulmasını gösterir.
Haftalık Tekrarlamalar: EndAfterNOccurrences Bitiş Tipi
Bu tekrarlama tipinde, tekrarlama sayısı aşağıdaki gibi diğer bilgilerle birlikte ayarlanır:
- Başlangıç, bitiş ve teslim tarihlerini ayarlayın.
- Bir oluştur MapiTask.
- Görev durumunu NotAssigned olarak ayarlayın.
- PatternType, Period, WeekStartDay, EndType ve OccurenceCount gibi özellikleri ayarlayarak haftalık tekrarlama nesnesi oluşturun.
- MapiTask.setRecurrence özelliğini bu haftalık tekrarlama nesnesine ayarlayın.
- Bu mesajı diske kaydedin.
Aşağıdaki kod snippet’i, tekrarlama bitiş tipi EndAfterNOccurrence olarak ayarlanmış bir görev oluşturmayı gösterir.
// 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);
Aşağıdaki fonksiyon, iki tarih arasındaki etkinlik sayısını hesaplamak için kullanılabilir:
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();
}
Bir Haftada Birden Fazla Gün Seçme
Aşağıdaki kod snippet’i, bir hafta içinde birden fazla gün seçmeyi gösterir.
// 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"));
Bir Haftada Birden Fazla Gün Seçme ve Aralıkları Ayarlama
Aşağıdaki kod snippet’i, bir hafta içinde birden fazla gün seçmeyi ve aralıkları ayarlamayı gösterir.
// 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"));
Haftalık Tekrarlamalar: EndAfterDate Bitiş Tipi
"End By" seçeneği, Mapi Task’ta getOccurrenceCount() fonksiyonu ile hesaplanan OccurrenceCount özelliği ayarlanarak elde edilir. Bu fonksiyon başlangıç tarihi, bitiş tarihi ve RRULE dizesini alır.
Haftalık Tekrarlamalar: Every Day Değerini Ayarlama
Aşağıdaki kod snippet’i, RRULE dizesinde period değerini 1 ve INTERVAL değerini 1 olarak ayarlamayı da gösterir.
// 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"));
Every Day değeri uygun bir değere ayarlanabilir ve birden fazla gün, aşağıdaki örnekte gösterildiği gibi seçilebilir:
// 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"));
Haftalık Tekrarlamalar: NeverEnd Bitiş Tipi
Bitiş tipi, MapiCalendarRecurrenceEndType.NeverEnd kullanılarak ayarlanabilir. Period veya INTERVAL, aşağıdaki örnekte gerektiği gibi 1 olarak ayarlanabilir.
// 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"));
Aylık Tekrarlamalarla Çalışma
Aspose.Email, aylık tekrarlamaların oluşturulmasını şunu kullanarak destekler: MapiCalendarMonthlyRecurrencePatternÜç farklı Mapi takvim tekrarlama bitiş tipi, EndAfterNOccurrences, EndAfterDate ve NeverEnd kullanılabilir. Bu bölüm, farklı aylık tekrarlama desenlerinin oluşturulmasını gösterir.
Aylık Tekrarlamalar: EndAfterNOccurrences Bitiş Tipi
Bu tekrarlama tipinde, tekrarlama sayısı aşağıdaki gibi diğer bilgilerle birlikte ayarlanır:
- Başlangıç, bitiş ve teslim tarihlerini ayarlayın.
- Bir oluştur MapiTask.
- Görev durumunu NotAssigned olarak ayarlayın.
- PatternType, Period, WeekStartDay, EndType ve OccurenceCount gibi özellikleri ayarlayarak aylık tekrarlama nesnesi oluşturun.
- MapiTask.setRecurrence özelliğini bu aylık tekrarlama nesnesine ayarlayın.
- Bu mesajı diske kaydedin.
Aşağıdaki kod snippet’i, tekrarlama bitiş tipi EndAfterNOccurrence olarak ayarlanmış bir görev oluşturmayı gösterir.
// 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);
Aşağıdaki fonksiyon, iki tarih arasındaki etkinlik sayısını hesaplamak için kullanılabilir:
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();
}
Sabit Tekrar Sayısını Ayarlama
Aşağıdaki kod snippet’i, sabit bir tekrar sayısı nasıl ayarlanacağını gösterir.
// 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);
Aylık Tekrarlamalar: EndAfterDate Bitiş Tipi
"End By" seçeneği, Mapi Task’ta getOccurrenceCount() fonksiyonu ile hesaplanan OccurrenceCount özelliği ayarlanarak elde edilir. Bu fonksiyon başlangıç tarihi, bitiş tarihi ve RRULE dizesini alır. Aşağıdaki kod snippet’i, başlangıç ve bitiş tarihleri arasında her ayın 15’inde bir tekrarlama oluşturmayı gösterir.
// 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);
Aylık Tekrarlamalar: NeverEnd Bitiş Tipi
Aşağıdaki kod snippet’i, MapiCalendarRecurrenceEndType.NeverEnd kullanılarak bitiş tipinin nasıl ayarlanabileceğini gösterir.
// 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);
Yıllık Tekrarlamalarla Çalışma
Aspose.Email, yıllık tekrarlamaların oluşturulmasını şunu kullanarak destekler: MapiCalendarMonthlyRecurrencePatternPeriod özelliğini 12 olarak ayarlayarak yıllık tekrarlama desenini elde edebiliriz. EndAfterNOccurrences, EndAfterDate ve NeverEnd gibi üç farklı Mapi takvim tekrarlama bitiş tipi kullanılabilir. Bu bölüm, farklı yıllık tekrarlama desenlerinin oluşturulmasını gösterir.
Yıllık Tekrarlamalar: EndAfterNOccurrences Bitiş Tipi
Bu tekrarlama tipinde, tekrarlama sayısı aşağıdaki gibi diğer bilgilerle birlikte ayarlanır:
- Başlangıç, bitiş ve teslim tarihlerini ayarlayın.
- Bir oluştur MapiTask.
- Görev durumunu NotAssigned olarak ayarlayın.
- PatternType, Period, WeekStartDay, EndType ve OccurenceCount gibi özellikleri ayarlayarak aylık tekrarlama nesnesi oluşturun.
- MapiTask.setRecurrence özelliğini bu aylık tekrarlama nesnesine ayarlayarak yıllık tekrarlamayı elde edin.
- Bu mesajı diske kaydedin.
Aşağıdaki kod snippet’i, tekrarlama bitiş tipi EndAfterNOccurrence olarak ayarlanmış bir görev oluşturmayı gösterir.
// 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);
Yıllık Tekrarlamalar: EndAfterDate Bitiş Tipi
"End By" seçeneği, Mapi Task’ta getOccurrenceCount() fonksiyonu ile hesaplanan OccurrenceCount özelliği ayarlanarak elde edilir. Bu fonksiyon başlangıç tarihi, bitiş tarihi ve RRULE dizesini alır. Aşağıdaki kod snippet’i, başlangıç ve bitiş tarihleri arasında her 7. ayın 15’inde bir tekrarlama oluşturmayı gösterir.
// 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"));
Yıllık Tekrarlamalar: NeverEnd Bitiş Tipi
Aşağıdaki kod snippet’i, MapiCalendarRecurrenceEndType.NeverEnd kullanılarak bitiş tipinin nasıl ayarlanabileceğini gösterir.
// 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);
Tekrarlama Kuralından Tekrarlama Oluşturma
Aspose.Email API, Tekrar Kuralı (RRULE) üzerinden Tekrarlama Deseni oluşturma yeteneği sağlar. RRULE’dan bilgiyi RFC 5545 iCal spesifikasyonlarına göre ayrıştırır ve MapiCalendarRecurrencePatternFactory.fromString metodunu kullanarak tekrarlama desenini oluşturur. Aşağıdaki kod snippet’i, tekrarlama kuralından tekrarlama deseni nasıl oluşturulacağını gösterir.
// 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));
Tekrarlayan Takvim Etkinliklerine Ek Dosya Ekleme
Aspose.Email API tekrarlayan takvim etkinliklerine ek dosya ekleme yeteneği sağlar.
// 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);
}
Takvim Etkinliği Saat Dilimini Ayarlama
Aspose.Email API takvim saat dilimini ayarlama yeteneği sunar:
- başlangıç/bitiş tarihi için saat dilimi bilgisi
- tekrarlayan bir toplantı için saat dilimi bilgisi
- tekrarlayan serideki toplantı tarih ve saatini UTC’ye ve UTC’den nasıl dönüştüreceğini açıklayan saat dilimi bilgisi
Aşağıdaki kod snippet’i, takvim saat dilimi bilgisini nasıl ayarlayacağınızı gösterir:
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);