उन्नत पायथन विकास पाठ्यक्रम
अध्याय
>
स्तर
स्ट्रिंग और टाइम मॉड्यूल्स
तिथि/समय मॉड्यूल
उद्देश्य
Date & Time मॉड्यूल फ़ंक्शन्स का उपयोग करके रिकॉर्ड समायोजित करें और सप्लाइज के लिए शिपिंग तिथियों की व्यवस्था करें।
नई निर्माण क्षेत्र के एनेक्स की निचली मंजिल एक गोदाम है जिसमें हाल ही में वितरित कुछ आपूर्ति मौजूद हैं जिन्हें पैक कर दिया गया है और नई निर्माण के आसपास के क्षेत्रों को भेजने के लिए तैयार हैं। इन पर सही तिथियाँ और समय लगाना आवश्यक है, और यह सुनिश्चित करना भी कि जिन लेबलों को पहले ही लगाया जा चुका है, उनमें सभी प्रासंगिक जानकारी हो। ऐसा करने के लिए हम मैन्युअली तिथियाँ और समय लिखने और फ़ॉर्मैट करने में समय ले सकते हैं, लेकिन Date & Time मॉड्यूल का उपयोग करके इसे करने का एक बहुत तेज़ तरीका है।
Date & Time मॉड्यूल को import datetime लिखकर इम्पोर्ट किया जाता है, यह कुछ शक्तिशाली फ़ंक्शन्स की एक श्रृंखला को अनलॉक करता है जो आपको फॉर्मेटेड समय और तिथियाँ पढ़ने और सेट करने की सुविधा देता है जिन्हें आप ऑब्जेक्ट्स में स्टोर कर सकते हैं। आप from datetime import timezone, timedelta का भी उपयोग कर सकते हैं ताकि टाइम ज़ोन सेट किए जा सकें। मॉड्यूल इम्पोर्ट करने पर निम्नलिखित फ़ंक्शन्स अनलॉक हो जाते हैं:
datetime.datetime(): आपको अपनी पसंद का समय सेट और स्टोर करने की अनुमति देता है, इसमें कई आर्गुमेंट्स शामिल हैं:year,month,day,hour,minute,second,microsecond,timezone। आपको सभी आर्गुमेंट्स दर्ज करने की आवश्यकता नहीं है, बल्कि केवल वे आर्गुमेंट्स दर्ज करें जिन्हें आप उपयोग करना चाहते हैं।datetime.datetime.now(): आपके वर्तमान तिथि और समय को लौटाता है जैसा कि घड़ी में दिखाई देगा।datetime.datetime.date(): केवल datetime की तिथि लौटाता है, बिना समय केdatetime.datetime.time(): केवल datetime का समय लौटाता है, बिना तिथि केdatetime.datetime.timestamp(): datetime का timestamp UNIX कोड के रूप में लौटाता है।timezone(): आपकी तिथियाँ और समय आर्गुमेंट्स के साथ उपयोग करने के लिए टाइम ज़ोन सेट करने की अनुमति देता है।datetime.strftime(): आपको तिथि और समय की विशिष्ट जानकारी निकालने और इसे विशिष्ट कोड्स का उपयोग करके अपनी पसंद के अनुसार फ़ॉर्मैट करने की अनुमति देता है। हमारे उद्देश्यों के लिए हम निम्नलिखित कोड्स का उपयोग करेंगे:"%a": सप्ताह का दिन, संक्षिप्त रूप में"%d": महीने का दिन"%B": महीने का नाम, पूर्ण रूप में लिखा हुआ"%I": घंटा, बारह घंटे की घड़ी"%M": मिनट"%p": पूर्वाह्न/अपराह्न"%x": स्थानीय तिथि प्रारूप"%X": स्थानीय समय प्रारूप"%j": वर्ष का दिन"%U": वर्ष का सप्ताह"%z": UTC टाइम ज़ोन
शुरू करने के लिए, हल्के X मार्क की ओर चलें और डेस्क की ओर मुख करें, और read() फ़ंक्शन का उपयोग करके शिपमेंट्स के लिए पैकिंग तिथियों के साथ-साथ प्रोजेक्ट्स की शुरूआत और समाप्ति तिथियाँ जांचें। दस्तावेज में दी गई शुरुआत और समाप्ति तिथियों (महीना/दिन/वर्ष) पर ध्यान दें। मेमो में लिखे गए पहले तीन (3) डेटा पॉइंट्स के साथ-साथ टाइम ज़ोन पहले से ही आगे के फ़ंक्शन्स के उपयोग में आसानी के लिए कोड एडिटर में लिखे गए हैं।
उसी स्थान पर, एक वेरिएबल today बनाएं और इसमें datetime.datetime.now() का रिटर्न वैल्यू स्टोर करें। इसे एक पठनीय स्ट्रिंग में बदलने के लिए str() का उपयोग करें, इस प्रकार: today = str(datetime.datetime.now())। display() फ़ंक्शन का उपयोग करके आज की तिथि मेमो पर लिखें, जिससे शिपिंग आवंटनों के लिए तिथि सेट हो जाती है और आप आवश्यक क्षेत्रों में गायब डेटा पॉइंट्स जोड़ना शुरू कर सकते हैं।
सुनहरे X मार्क की ओर चलें जो डेस्क के बगल में है, और यहाँ हम इस प्रोजेक्ट में लगने वाले दिनों की गणना और लेखांकन करेंगे। एडिटर में start और end नामक दो वेरिएबल लिखे गए हैं जिनमें datetime स्टोर है। पहले से पढ़ी गई शुरुआत और समाप्ति तिथियों को निर्दिष्ट स्थानों में लिखें। एक वेरिएबल result बनाएं और end और start वेरिएबल्स के बीच घटाव का परिणाम स्टोर करें। इसे पठनीय स्ट्रिंग प्रारूप में बदलने के लिए str() फ़ंक्शन का उपयोग करें, इस प्रकार: result = str(end-start)। write() फ़ंक्शन का उपयोग करके result वेरिएबल को लिखें, ताकि यह दर्शाया जा सके कि इसमें कितना समय लगेगा।
यहाँ से हम लाल कालीन के बगल में स्थित सुनहरे X मार्क की ओर बढ़ेंगे और बायीं कॉलम में लाल कालीन के क्रेट्स के पास के X मार्क की ओर जाएंगे। यहाँ हम datetime() का उपयोग करके क्रेट्स से गायब पैकिंग तिथियों के विशिष्ट हिस्सों को जोड़ेंगे। एडिटर में red_date नामक वेरिएबल में पहले से ही एक तिथि आवंटित की गई होगी, हम विभिन्न डेटा अंश निकालेंगे और उनका उपयोग क्रेट्स पर लेबल लगाने के लिए करेंगे।
लाल कालीन के लिए:
-
सुनहरे X मार्क पर, क्रेट्स की ओर मुख करें और
red_daysनामक वेरिएबल बनाएं, इसमेंred_dateवेरिएबल सेdate()का उपयोग करके समय के बिना तिथि स्टोर करें, औरstr()का उपयोग करके कन्वर्ट करें, इस प्रकार:red_days = str(red_date.date())।write()फ़ंक्शन का उपयोग करके क्रेट्स कोred_daysके साथ लेबल करें। -
हल्के X मार्क पर, क्रेट्स की ओर मुख करें और
red_timeनामक वेरिएबल बनाएं, इसमेंred_dateवेरिएबल सेtime()का उपयोग करके तिथि के बिना समय स्टोर करें औरstr()का उपयोग करके कन्वर्ट करें, इस प्रकार:red_time = str(red_date.time())।write()फ़ंक्शन का उपयोग करके क्रेट्स कोred_timeके साथ लेबल करें। -
गहरे X मार्क पर, क्रेट्स की ओर मुख करें और
red_timestampनामक वेरिएबल बनाएं, जिसमेंred_dateवेरिएबल से कैल्कुलेट किया गया timestamp स्टोर करें, इस प्रकार:red_timestamp = red_date.timestamp()।write()फ़ंक्शन का उपयोग करके क्रेट्स कोred_timestampके साथ लेबल करें।
इसके बाद, हम नीले कालीन के क्रेट्स के सामने के X मार्क की ओर बढ़ेंगे। पहले की तरह, यहाँ तीन (3) रंगीन X मार्क हैं, इस मामले में पूर्व-लिखित blue_date वेरिएबल का उपयोग करके लेबल पूरे करने के लिए। कॉलम में जाएँ और शिपिंग लेबल पर गायब तत्वों को जोड़ने के लिए strftime() फ़ंक्शन का उपयोग करें। पिछले फ़ंक्शन्स के विपरीत, इस फ़ंक्शन के लिए लक्ष्य तिथि में से तत्वों को निकालने और फ़ॉर्मैट करने के लिए एक विशिष्ट कोड की आवश्यकता होती है। उदाहरण के लिए, यदि हमें blue_date वेरिएबल के लिए सप्ताह का दिन प्राप्त करना है तो आप strftime() फ़ंक्शन के साथ कोड "%a" का उपयोग करेंगे, इस प्रकार: blue_date.strftime("%a")।
नीले कालीन के क्रेट्स के पास के X मार्क के लिए, आवश्यक विशिष्ट कोड के साथ strftime() फ़ंक्शन का उपयोग करें। पूर्व में सूचीबद्ध कोड सूची को आवश्यकताओं के आधार पर देखें।
नीले कालीन के लिए:
-
सुनहरे X मार्क पर, क्रेट्स की ओर मुख करें और
blue_weekdayनामक वेरिएबल बनाएं, जिसमेंblue_dateवेरिएबल सेstrftime()का उपयोग करके सप्ताह का दिन स्टोर करें इस प्रकार:blue_day = blue_date.strftime("%a")। एक और वेरिएबलblue_dayबनाएं और इसमेंblue_dateवेरिएबल सेstrftime()का उपयोग करके महीने का दिन स्टोर करें। एक और वेरिएबलblue_monthबनाएं और इसमेंblue_dateवेरिएबल सेstrftime()का उपयोग करके महीने का नाम, पूर्ण रूप में लिखा हुआ स्टोर करें। पूर्व-लिखितwrite()फ़ंक्शन मेंblue_weekday,blue_dayऔरblue_monthवेरिएबल्स दर्ज करें। -
हल्के X मार्क पर, क्रेट्स की ओर मुख करें और
blue_hourनामक वेरिएबल बनाएं, जिसमेंblue_dateवेरिएबल सेstrftime()का उपयोग करके घंटा, बारह घंटे की घड़ी स्टोर करें। एक और वेरिएबलblue_minuteबनाएं और इसमेंblue_dateवेरिएबल सेstrftime()का उपयोग करके मिनट स्टोर करें। एक और वेरिएबलblue_meridianबनाएं और इसमेंblue_dateवेरिएबल सेstrftime()का उपयोग करके पूर्वाह्न/अपराह्न स्टोर करें। पूर्व-लिखितwrite()फ़ंक्शन मेंblue_hour,blue_minuteऔरblue_meridianवेरिएबल्स दर्ज करें। -
गहरे X मार्क पर, क्रेट्स की ओर मुख करें और
blue_local_dateनामक वेरिएबल बनाएं, जिसमेंblue_dateवेरिएबल सेstrftime()का उपयोग करके स्थानीय तिथि प्रारूप स्टोर करें। एक और वेरिएबलblue_local_timeबनाएं और इसमेंblue_dateवेरिएबल सेstrftime()का उपयोग करके स्थानीय समय प्रारूप स्टोर करें। पूर्व-लिखितdisplay()फ़ंक्शन मेंblue_local_date,blue_local_timeऔरblue_meridianवेरिएबल्स दर्ज करें।
अंत में, हम हरे कालीन के बगल में स्थित सुनहरे X मार्क की ओर बढ़ेंगे और दाहिने कॉलम में हरे कालीन के क्रेट्स के पास के X मार्क की ओर जाएंगे। यहाँ हम strftime() का उपयोग करके क्रेट्स से गायब पैकिंग तिथियों के विशिष्ट हिस्सों को जोड़ना जारी रखेंगे। एडिटर में green_date वेरिएबल में पहले से ही एक तिथि आवंटित की गई होगी, हम विभिन्न डेटा अंश निकालेंगे और उनका उपयोग क्रेट्स पर लेबल लगाने के लिए करेंगे।
हरे कालीन के लिए:
-
सुनहरे X मार्क पर, क्रेट्स की ओर मुख करें और
green_dayनामक वेरिएबल बनाएं, जिसमेंgreen_dateवेरिएबल सेstrftime()का उपयोग करके वर्ष का दिन स्टोर करें।write()फ़ंक्शन का उपयोग करके क्रेट्स कोgreen_dayके साथ लेबल करें। -
हल्के X मार्क पर, क्रेट्स की ओर मुख करें और
green_weekनामक वेरिएबल बनाएं, जिसमेंgreen_dateवेरिएबल सेstrftime()का उपयोग करके वर्ष का सप्ताह स्टोर करें।write()फ़ंक्शन का उपयोग करके क्रेट्स कोgreen_weekके साथ लेबल करें। -
गहरे X मार्क पर, क्रेट्स की ओर मुख करें और
green_timezoneनामक वेरिएबल बनाएं, जिसमेंgreen_dateवेरिएबल सेstrftime()का उपयोग करके UTC टाइम ज़ोन स्टोर करें।write()फ़ंक्शन का उपयोग करके क्रेट्स कोgreen_timezoneके साथ लेबल करें।
एक बार जब रंगीन कालीन के पास के सभी X मार्क पर लेबल लिख दिए जाएँ, तो यह स्तर पूर्ण हो जाएगा।