2009-06-17 7 views
10

क्या आवधिक या पुनरावर्ती तिथियों को संग्रहीत करने के लिए कोई प्रकाशित डेटा संरचना है? कुछ जो संभाल सकता है:आवधिक या पुनरावर्ती तिथियों के लिए एक अच्छी डेटा संरचना क्या है?

  1. पंप को हर पांच दिनों में रीसाइक्लिंग की आवश्यकता होती है।
  2. पेडे हर दूसरे शुक्रवार है।
  3. थैंक्सगिविंग डे अक्टूबर में दूसरा सोमवार है (यूएस: नवंबर में चौथा गुरुवार)।
  4. वेलेंटाइन डे प्रत्येक फरवरी 14 है।
  5. सोलस्टिस (आमतौर पर) 21 जून और 21 दिसंबर को होता है।
  6. ईस्टर पर या वसंत विषुव के दिन के बाद पहली पूर्णिमा के बाद रविवार है (ठीक है, यह एक एक खंड का एक सा है)।

मुझे लगता है cron के आंतरिक डेटा संरचना # 1, # 4, # 5 (दो नियम), और शायद # 2 संभाल कर सकते हैं, लेकिन मैं इसे पर एक नज़र नहीं था। एमएस आउटलुक और अन्य कैलेंडर पहले पांच को संभालने में सक्षम हैं, लेकिन मेरे पास उस स्रोत कोड के आसपास झूठ नहीं है।

+0

यह मदद कर सकता है: http://stackoverflow.com/questions/85699/whats-the-best-way-to-model-recurring-events-in-a-calendar- अनुप्रयोग – molf

+0

धन्यवाद। अगर मैंने अभी "पुनरावर्ती तिथियों" के बजाय "पुनरावर्ती" की खोज की है तो मुझे प्रश्नों का पूरा समूह मिल जाएगा। – yukondude

उत्तर

6

इन लोगों की तरह एक iCalendar कार्यान्वयन लाइब्रेरी का,: ruby, java, php, python, .net और java, और फिर विशेष तिथियों की गणना के लिए समर्थन जोड़ने।

+1

धन्यवाद। मैंने सोचा कि iCalendar ओवरकिल की तरह लग रहा था, लेकिन शायद यह सब के बाद सबसे सरल समाधान है। – yukondude

0
जिस तरह से आप पुनरावृत्ति निर्दिष्ट करते हैं, मैं एक ही डेटा संरचना कार्यान्वयन से संकोच सभी 5 परिदृश्यों को समायोजित करने के लिए इन सभी रूपों के साथ

इसके बजाय, मैं (और पिछले परियोजना के लिए है) सरल संरचनाओं कि पुनरावृत्ति के प्रत्येक प्रकार के समाधान का निर्माण होगा। आप उन्हें सब कुछ लपेट सकते हैं ताकि यह एक डेटा संरचना की तरह महसूस हो सके, लेकिन हुड के नीचे वे जो चाहें कर सकते हैं। एक इंटरफ़ेस को कार्यान्वित करके, मैं प्रत्येक प्रकार के पुनरावृत्ति को समान रूप से इलाज करने में सक्षम था, इसलिए यह एक आकार-फिट-सभी डेटा संरचना की तरह महसूस किया गया। मैं एक निश्चित समय सीमा के भीतर पुनरावृत्ति की सभी तिथियों के लिए किसी भी उदाहरण से पूछ सकता हूं, और यह चाल है।

मैं भी के बारे में कैसे इन तिथियों एक विशिष्ट कार्यान्वयन पर बसने से पहले इस्तेमाल किया जा करने की जरूरत है और जानना चाहता हूँ चाहते हैं।

+0

हां, मुझे लगता है कि आपको डेटा संरचनाओं के संघीय सेट की आवश्यकता होगी, क्योंकि पुनरावृत्ति व्यक्त करने के तरीके बहुत अलग हैं। और फिर आप एक इंटरफ़ेस चाहते हैं जिसे आप यह पूछने के लिए क्वेरी कर सकते हैं कि कोई निश्चित दिन या दिन किसी भी पुनरावर्तन से मेल खाता है या नहीं। आपके प्रश्न के उत्तर में, तारीखों का उपयोग टेली/वीडियो/वेब-कॉन्फ्रेंस बुक करने के लिए किया जाएगा, जिनमें से कुछ राष्ट्रीय छुट्टियों के साथ मेल खाते हैं, इसलिए "अक्टूबर में दूसरा सोमवार" व्यवसाय। – yukondude

0

यदि आप डेटा संरचना बनाने के लिए हाथ से बनाना चाहते हैं, तो मैं एक हैश तालिका (जहां छुट्टियां या घटना नई मान घटना के साथ कुंजी होती है) की सिफारिश करेगी, यदि प्रत्येक घटना की बहुतायत हैं हैश वह मान जो एक लिंक्ड सूची में एक अनुभाग पाता है, जिसके बाद सभी घटनाओं की एक सूची होती है (इससे ओ (1) में प्रविष्टि चलाने के साथ-साथ प्रविष्टि भी मिलती है)।

संबंधित मुद्दे

 संबंधित मुद्दे