Tekrarlama Desenlerini Tanıtma
Bir tekrar etme desenini belirli bir takvimi tanımlamanın bir yolu olarak düşünebilirsiniz. Belirli bir takvime göre oluş tarih ve saatlerinin listesini oluşturmak için yeterli bilgiyi içerir. Bir tekrar etme deseni, genel deseni oluşturmak için birleştirilen döngüleri tanımlayan tekrar kuralları içerebilir. Genel olarak, bir tekrar etme deseni ne kadar karmaşıksa, o kadar çok tekrar kuralı içerir. Tekrar etme desenleri istisnalar içerebilir (uygulama çalışması sırasında oluşan hataları temsil eden istisnalardan karıştırılmamalıdır). İstisnalar, orijinal desene tarih ekler veya çıkarır. İstisnalar açık oluşlar ya da kendi desenleri olarak belirtilebilir. İstisnalar içeren tekrar etme desenlerine örnekler:
- Her ayın 2. Cuması, ancak Haziran’dan Ağustos’a kadar hariç.
- Ocak ayı hariç olmak üzere her ayın 1’i, Ocak’ta ise 2’sinde olması gerekir.
Tekrar etme desenleri çoğunlukla periyodiktir, ancak olmak zorunda değildir. Bir tekrar etme deseni, önceden tanımlanmış oluş tarih ve saatlerinden oluşan bir küme olarak tamamen tanımlanabilir. iCalendar RFC’si, etkinlikleri veya görevleri temsil eden VEVENT veya VTODO gibi bileşenleri tanımlar. Bileşenler, başlangıç tarih saat, açıklama, konum, katılımcılar ve tekrar gibi özelliklere sahip olabilir. Bu nedenle bir tekrar etme deseni genellikle yinelenen bir görev ya da etkinliğin bir özelliği olarak bulunur. iCalendar tarafından tanımlanan tekrar etme deseni özellikleri şunlardır:
- DTSTART - desenin başlangıç tarih ve saati (aynı zamanda açıkça dışlanmadıysa ilk oluşumu temsil eder).
- RRULE - bir tekrarlama seti için tekrar kuralı belirtir.
- RDATE - bir tekrarlama setine dahil edilecek tarih ve saatlerin listesini tanımlar.
- EXRULE - bir tekrarlama setindeki istisnalar için tekrar kuralı belirtir.
- EXDATE - bir tekrarlama setinden tarih ve saat istisnalarının listesini tanımlar.
Yalnızca DTSTART gereklidir ve sadece bir kez bulunmalıdır. Diğer tüm özellikler isteğe bağlıdır ve birden fazla kez belirtilebilir. Aspose.iCalendar, iCalendar formatında bir dize alır ve tekrarlama desenini bir … içine okur RecurrencePattern nesne. Dize, bir iCalendar bileşeninin (örneğin tam bir VEVENT) tam açıklaması olabilir ya da yalnızca tekrarlama desenini içeren bir parça olabilir. Tekrarlama deseni bir RecurrencePattern nesnesine yüklendikten sonra şunları yapabilirsiniz:
- Deseni, Aspose.iCalendar tarafından sağlanan yöntem ve özellikler aracılığıyla programlı olarak inceleyin ve değiştirin.
- Belirtilen tarih aralığında oluşum tarihlerini/saatlerini oluşturun.
- Deseni iCalendar formatında kaydedin.
Aşağıdaki kod parçacığı, RRULE kısmının tekrarlama kuralını içerdiğini gösterir.
Şuna bakın: örnek tekrar desenleri tekrar desenlerinin nasıl oluşturulacağına dair açıklamalar için.
Aspose.iCalendar Nesne Modeli Hakkında
Aspose.iCalendar ad alanı, Aspose.iCalendar bileşeni tarafından sağlanan tüm sınıfları içerir. RecurrencePattern ve RecurrenceRule, Aspose.iCalendar’ın merkezi sınıflarıdır ve ilgili RFC 2445 öğelerinin somut uygulamalarını sağlar.
RecurrencePattern sınıfı tüm tekrar etme desenini temsil eder. Varsayılan yapıcıyı kullanarak sıfırdan yeni bir tekrar deseni oluşturabilir veya statik FromiCalendar yöntemiyle iCalendar biçiminde mevcut bir deseni yükleyebilirsiniz. RecurrenceRule sınıfı bir tekrar deseninin RRULE veya EXRULE kısmını temsil eder. RecurrenceRule, iCalendar standardındaki karşılıklarıyla doğrudan eşleşen bir dizi özellik sunar. Örneğin, ByMonth iCalendar’da BYMONTH’e karşılık gelir vb. RecurrenceRule özelliklerinin değerlerini inceleyerek veya ayarlayarak bir tekrar kuralını analiz edebilir veya değiştirebilirsiniz. Daha fazla bilgi ve kod örnekleri için API Referansında RecurrencePattern ve RecurrenceRule bölümlerine bakın.
Örnek Desenler
Bu bölüm aşağıdaki konuları içerir:
- Ayın Son Günü.
- Her Ayın Son İş Günü.
- Yılın Son Pazartesi’si.
- Yılın İlk ISO 8601 Haftasındaki Cuma.
- Yılın İlk Cuması.
Ayın Son Günü
Bu örnekler tekrar etme deseni her ayın son gününü belirtir.
RRULE:FREQ=MONTHLY;BYMONTHDAY=-1
Benzer şekilde, ayın son gününden bir gün önce bir oluş istiyorsanız BYMONTHDAY=-2 kullanın. BYMONTHDAY=31 belirlerseniz, iCalendar standardına göre 31 gün olmayan aylarda hiçbir oluş oluşturulmaz.
Her Ayın Son İş Günü
Bu örnekler tekrar etme deseni her ayın son iş gününü belirtir. İş günleri, çalıştığınız günler olarak tanımlanır. Örneğin Avrupa’da iş günleri genellikle Pazartesi’den Cuma’ya kadardır.
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
Yukarıdaki kural bir ayın tüm iş günlerini belirler ve bunların sonuncusunu seçer. Sonuç olarak ayın son iş günü elde edilir.
Yılın Son Pazartesi’si
Bu örnek tekrar etme deseni yılın son Pazartesisi gerçekleşen bir olayı belirtir.
RRULE:FREQ=YEARLY;BYDAY=-1MO
Yılın İlk ISO 8601 Haftasındaki Cuma
Bu örnek tekrar etme deseni yılın ilk haftasındaki Cuması belirtir. ISO 8601 standardına göre, yılın ilk haftası en az dört gün içeren haftadır. Örneğin bir yıl Cumartesi günü başlarsa, 1. hafta hemen sonrasındaki, 3 Ocak Pazartesi’den başlayan haftadır.
FREQ=YEARLY;BYWEEKNO=1;BYDAY=FR
Yılın İlk Cuması
Bu örnek tekrar etme deseni yılın 1. Cuması gerçekleşen bir olayı belirtir.
FREQ=YEARLY;BYDAY=1FR
Örneğin 1999’da, yılın 1. Cuması 1999/01/01 iken, 1. ISO 8601 haftasının Cuması 1999/01/08’dir.