पुनरावृत्ति पैटर्न का परिचय
आप recurrence pattern को एक विशिष्ट समय‑सारणी को वर्णित करने का तरीका मान सकते हैं। इसमें पर्याप्त जानकारी होती है जिससे दी गई समय‑सारणी के अनुसार घटनाओं (तिथियों और समय) की सूची बनाई जा सके। एक recurrence pattern में recurrence नियम हो सकते हैं जो चक्रों का वर्णन करते हैं और मिलकर सम्पूर्ण पैटर्न बनाते हैं। सामान्यतः, जितना जटिल recurrence pattern होगा, उसमें उतने ही अधिक recurrence नियम सम्मिलित होंगे। Recurrence patterns में exceptions भी हो सकते हैं (ऐसे अपवादों से भ्रमित न हों जो एप्लिकेशन निष्पादन में त्रुटियों को दर्शाते हैं)। अपवाद मूल पैटर्न में तिथियों को जोड़ या हटाते हैं। अपवादों को स्पष्ट रूप से घटनाओं के रूप में या स्वयं एक पैटर्न के रूप में निर्दिष्ट किया जा सकता है। अपवादों के साथ recurrence पैटर्न के उदाहरण:
- हर दूसरे शुक्रवार, जून से अगस्त तक को छोड़कर।
- हर महीने की 1 तारीख, सिवाय जनवरी के, जब यह 2 तारीख पर होनी चाहिए।
आवृत्ति पैटर्न अक्सर आवधिक होते हैं, लेकिन इसका ऐसा होना आवश्यक नहीं है। एक आवृत्ति पैटर्न को पूरी तरह से पूर्व निर्धारित तिथि और समय के सेट के रूप में वर्णित किया जा सकता है। iCalendar RFC components को परिभाषित करता है, जैसे VEVENT या VTODO, जो घटनाओं या कार्यों का प्रतिनिधित्व करते हैं। इन घटकों में शुरूआती तिथि‑समय, विवरण, स्थान, उपस्थित लोग और आवृत्ति जैसी संपत्तियां हो सकती हैं। इसलिए, एक आवृत्ति पैटर्न सामान्यतः किसी आवर्ती कार्य या घटना की संपत्ति के रूप में मौजूद रहता है। iCalendar द्वारा परिभाषित आवृत्ति पैटर्न गुण हैं:
- DTSTART - पैटर्न की प्रारम्भ तिथि और समय (यदि विशेष रूप से बाहर नहीं रखा गया तो पहला आवर्तन भी दर्शाता है)।
- RRULE - पुनरावृत्ति सेट के लिए दोहराने वाला नियम निर्दिष्ट करता है।
- RDATE - पुनरावृत्ति सेट में शामिल करने के लिए दिनांक और समय की सूची को परिभाषित करता है।
- EXRULE - पुनरावृत्ति सेट से अपवादों के लिए दोहराने वाला नियम निर्दिष्ट करता है।
- EXDATE - पुनरावृत्ति सेट से दिनांक और समय के अपवादों की सूची को परिभाषित करता है।
केवल DTSTART आवश्यक है और केवल एक ही DTSTART होना चाहिए। सभी अन्य गुण वैकल्पिक हैं और एक से अधिक बार निर्दिष्ट किए जा सकते हैं। Aspose.iCalendar iCalendar फ़ॉर्मेट में स्ट्रिंग लेता है और पुनरावृत्ति पैटर्न को एक RecurrencePattern ऑब्जेक्ट। स्ट्रिंग एक पूर्ण iCalendar कंपोनेंट (उदाहरण के लिये, पूर्ण VEVENT) का विवरण हो सकता है या केवल एक फ्रैगमेंट हो सकता है जिसमें केवल पुनरावृत्ति पैटर्न शामिल हो। एक बार पुनरावृत्ति पैटर्न को RecurrencePattern ऑब्जेक्ट में लोड करने के बाद, आप:
- Aspose.iCalendar द्वारा प्रदान किए गए मेथड्स और प्रॉपर्टीज़ के माध्यम से पैटर्न का प्रोग्रामेटिक रूप से परीक्षण और संशोधन करें।
- निर्दिष्ट तिथि सीमा में आवृति तिथियाँ/समय उत्पन्न करें।
- पैटर्न को iCalendar फ़ॉर्मेट में सहेजें।
निम्नलिखित कोड स्निपेट दिखाता है कि RRULE भाग में पुनरावृत्ति नियम शामिल है।
देखें नमूना recurrence पैटर्न recurrence पैटर्न बनाने के उदाहरणों के लिए।
Aspose.iCalendar ऑब्जेक्ट मॉडल के बारे में
Aspose.iCalendar नेमस्पेस Aspose.iCalendar घटक द्वारा प्रदान की गई सभी क्लासेज़ को सम्मिलित करता है। RecurrencePattern और RecurrenceRule Aspose.iCalendar की केंद्रीय क्लासेज़ हैं, और संबंधित RFC 2445 तत्वों के ठोस कार्यान्वयन प्रदान करती हैं।
RecurrencePattern क्लास सम्पूर्ण recurrence pattern का प्रतिनिधित्व करता है। आप डिफ़ॉल्ट कंस्ट्रक्टर का उपयोग करके शून्य से एक नया recurrence pattern बना सकते हैं या स्थैतिक FromiCalendar मेथड का उपयोग करके iCalendar फ़ॉर्मेट में मौजूदा पैटर्न लोड कर सकते हैं। RecurrenceRule क्लास एक recurrence pattern के RRULE या EXRULE भाग को दर्शाता है। RecurrenceRule कई ऐसी प्रॉपर्टीज़ को उजागर करता है जो सीधे iCalendar मानक में उनके समकक्षों से मैप होती हैं। उदाहरण के लिए, ByMonth iCalendar में BYMONTH से मेल खाता है, आदि। RecurrenceRule प्रॉपर्टीज़ के मानों को देखकर या सेट करके आप एक recurrence rule का विश्लेषण या संशोधन कर सकते हैं। अधिक जानकारी और कोड उदाहरणों के लिए, API रेफ़रेंस में RecurrencePattern और RecurrenceRule देखें।
नमूना पैटर्न
इस अनुभाग में निम्नलिखित विषय शामिल हैं:
- महीने का अंतिम दिन।
- प्रत्येक महीने का अंतिम कार्यदिवस।
- वर्ष का अंतिम सोमवार।
- वर्ष के पहले ISO 8601 सप्ताह का शुक्रवार।
- वर्ष का पहला शुक्रवार।
महीने का अंतिम दिन
यह नमूने आवृत्ति पैटर्न हर महीने के अंतिम दिन को निर्दिष्ट करता है।
RRULE:FREQ=MONTHLY;BYMONTHDAY=-1
इसी प्रकार, अगर आप महीने के अंतिम दिन से पहले की किसी तिथि पर घटना चाहें, तो BYMONTHDAY=-2 प्रयोग करें। यदि आप BYMONTHDAY=31 निर्दिष्ट करते हैं, तो iCalendar मानक के अनुसार उन महीनों में जहाँ 31 दिन नहीं होते, कोई घटना उत्पन्न नहीं होगी।
प्रत्येक महीने का अंतिम कार्यदिवस
यह नमूने आवृत्ति पैटर्न माह के अंतिम कार्यदिवस को हर महीने निर्दिष्ट करता है। कार्यदिवस उन दिनों को कहा जाता है जिन पर आप काम करते हैं। यूरोप में, उदाहरण के तौर पर, कार्यदिवस सामान्यतः सोमवार से शुक्रवार होते हैं।
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
ऊपर दिया गया नियम माह के सभी कार्यदिवसों को निर्दिष्ट करता है और उनमें से अंतिम को चुनता है। परिणामस्वरूप माह का अंतिम कार्यदिवस मिल जाता है।
वर्ष का अंतिम सोमवार
यह नमूना आवृत्ति पैटर्न वर्ष के अंतिम सोमवार पर होने वाली घटना को निर्दिष्ट करता है।
RRULE:FREQ=YEARLY;BYDAY=-1MO
वर्ष के पहले ISO 8601 सप्ताह का शुक्रवार
यह नमूना आवृत्ति पैटर्न वर्ष के पहले सप्ताह के शुक्रवार को निर्दिष्ट करता है। ISO 8601 विनिर्देशन के अनुसार, वर्ष का पहला सप्ताह वह होता है जिसमें कम से कम चार दिन सम्मिलित हों। उदाहरण के तौर पर, यदि वर्ष शनिवार को शुरू होता है, तो पहला सप्ताह अगला सप्ताह होगा, जो सोमवार, 3 जनवरी से शुरू होता है।
FREQ=YEARLY;BYWEEKNO=1;BYDAY=FR
वर्ष का पहला शुक्रवार
यह नमूना आवृत्ति पैटर्न वर्ष के पहले शुक्रवार पर होने वाली घटना को निर्दिष्ट करता है।
FREQ=YEARLY;BYDAY=1FR
उदाहरण के तौर पर, 1999 में वर्ष का पहला शुक्रवार 1999/01/01 है, जबकि पहला ISO 8601 सप्ताह का शुक्रवार 1999/01/08 है।