हर महीने, आपके साथी अपने सबसे अच्छे दोस्त से मिलते हैं। दोनों के पास बहुत व्यस्त कार्यक्रम हैं, जिससे उपयुक्त तारीख ढूँढना मुश्किल हो जाता है! चूँकि आपका भी कार्यक्रम काफी व्यस्त है, आपके साथी हर संभावित मिलने की तारीख की आपसे दोबारा पुष्टि करते रहते हैं:
इस महीने की कॉल में, आपके साथी ने आपसे यह सवाल पूछा:
हैरान होकर आप पूछते हैं कि टीन्थ दिन क्या होता है। आपके साथी बताते हैं कि टीन्थ दिन, जो उन्होंने खुद बनाया है, महीने के उन दिनों को कहते हैं जिनके अंग्रेज़ी नाम '-teenth' पर समाप्त होते हैं:
चूँकि सप्ताह में सात दिन होते हैं, यह तय है कि महीने में सप्ताह के हर दिन के लिए ठीक एक टीन्थ दिन होता है।
अब जब आप टीन्थ दिन का विचार समझ जाते हैं, तो आप अपना कैलेंडर देखते हैं। टीन्थ गुरुवार को आपकी कोई योजना नहीं है, इसलिए आप खुशी-खुशी अपने साथी के साथ तारीख की पुष्टि करते हैं।
आपको महीना, साल, सप्ताह का दिन और सप्ताह दिए जाने पर मीटअप की सही तारीख ढूँढनी है।
सप्ताह के लिए छह वैल्यू हैं, जिन पर ध्यान देना है: first, second, third, fourth, last और teenth।
उदाहरण के लिए, आपसे जनवरी 2018 के पहले सोमवार को होने वाले मीटअप की तारीख ढूँढने के लिए कहा जा सकता है (1 जनवरी 2018)।
इसी तरह, आपसे ये तारीखें ढूँढने के लिए भी कहा जा सकता है:
टीन्थ सप्ताह महीने के उन सात दिनों को कहते हैं जो '-teenth' पर खत्म होते हैं (13th, 14th, 15th, 16th, 17th, 18th और 19th)।
अगर अगस्त 1953 का टीन्थ शनिवार ढूँढना हो, तो हम उस महीने का कैलेंडर देखते हैं:
August 1953
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
इससे पता चलता है कि टीन्थ शनिवार 15 अगस्त 1953 है।
Prolog में तारीखों के लिए अंतर्निहित समर्थन काफी बुनियादी है। तारीखों के साथ काम करने का एक कहीं बेहतर तरीका [date_time पैकेज][date_time-package] है।
अगर आपका इंस्टॉल किया हुआ Swipl वर्ज़न काफी नया है, तो आप यह पैकेज इस तरह इंस्टॉल कर सकते हैं:
swipl pack install date_time
अगर वह काम न करे, तो आप यह चला सकते हैं:
swipl -g 'pack_install(date_time)'
अगर आप ऑनलाइन एडिटर इस्तेमाल कर रहे हैं, तो आपको कुछ भी खुद इंस्टॉल करने की ज़रूरत नहीं है।
date_time पैकेज इस्तेमाल करने के लिए अपनी हल फाइल के सबसे ऊपर यह कोड जोड़िए:
:- use_module(library(date_time)).
सुझाव: [date_time पैकेज का सोर्स][https://www.swi-prolog.org/pack/file_details/date_time/prolog/date_time.pl?show=src] का डॉक्यूमेंटेशन बहुत अच्छा है और वह आपके बहुत काम आएगा!
Exercism पर साइन अप कीजिए और Prolog को 109 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।