Python कैलेंडर ट्यूटोरियल उदाहरण के साथ
कैलेंडर मॉड्यूल Python इसमें कैलेंडर क्लास है जो तारीख, महीने और साल के आधार पर विभिन्न कार्यों के लिए गणना करने की अनुमति देता है। इसके अलावा, इसमें TextCalendar और HTMLCalendar क्लास भी है Python आपको कैलेंडर को संपादित करने और अपनी आवश्यकता के अनुसार उपयोग करने की अनुमति देता है।
आइये देखें कि हम क्या कर सकते हैं Python कैलेंडर।
स्टेप 1) कोड चलाएँ.
- कोड लाइन # 1: हम “import Calendar” से शुरू करते हैं जो इस मॉड्यूल की सभी कक्षाओं को आयात करेगा।
- कोड लाइन # 3: c= Calendar.TextCalendar(calendar.SUNDAY) इंटरप्रेटर को एक टेक्स्ट कैलेंडर बनाने के लिए कहता है। महीने की शुरुआत रविवार से होगी। Python, आप कैलेंडर को इस प्रकार प्रारूपित कर सकते हैं कि आप आरंभ में महीने का दिन बदल सकें
- कोड लाइन # 4: str= c.formatmonth(2025,1) हम वर्ष 2025, माह 1 - जनवरी के लिए कैलेंडर बना रहे हैं
- कोड लाइन # 5: प्रिंट str आउटपुट प्रिंट करेगा।
आइए जल्दी से रविवार से गुरुवार तक का मान बदलें और आउटपुट की जांच करें
चरण 2) आप कैलेंडर को HTML प्रारूप में प्रिंट भी कर सकते हैं, यह सुविधा डेवलपर के लिए उपयोगी है यदि वे कैलेंडर के रंगरूप में कोई बदलाव करना चाहते हैं।
चरण 3) लूप्स c.itermonthday (2025,4) का उपयोग करके किसी महीने के दिनों की संख्या ज्ञात करने पर, यह उस महीने के कुल दिनों की संख्या प्राप्त कर लेगा।
- जब आप किसी विशिष्ट माह जैसे "अप्रैल" के लिए कुल दिनों की संख्या प्राप्त करने के लिए कोड निष्पादित करते हैं, तो आपको आउटपुट में 30 दिन मिलेंगे, लेकिन आपको इन दिनों के साथ शुरुआत में और कभी-कभी अंत में कुछ शून्य भी दिखाई देंगे।
- आउटपुट में शून्य का अर्थ है कि सप्ताह का दिन एक ओवरलैपिंग माह में है, जिसका अर्थ है कि यह उस माह से संबंधित नहीं है।
- ये शून्य आउटपुट में दिखाई देते हैं क्योंकि, आपके कोड में आपने दिन (गुरुवार) का उल्लेख किया है, इसलिए जब आप फ़ंक्शन "c.itermonthdays" को कॉल करते हैं, तो यह गुरुवार से दिनों की गिनती शुरू कर देगा और आपका गुरुवार दिनांक 1 से शुरू नहीं हो सकता हैst अप्रैल में यह 28 हो सकता हैth या 29th मार्च का, इसलिए जब आप कोड निष्पादित करेंगे तो यह 28 से दिनों की गिनती शुरू कर देगाth मार्च और उसके बाद 1 तारीख तक किसी भी दिनst अप्रैल के इन दिनों को शून्य के रूप में गिना जाएगा और आउटपुट में आपको ये शून्य दिखाई देंगे और यही बात महीने के अंत पर भी लागू होती है।
- अतः दिनांक 1-30 को छोड़कर पिछले तथा बाद के माह की सभी तिथियां आउटपुट में शून्य के रूप में दिखाई देंगी।
चरण 4) आप स्थानीय सिस्टम से डेटा प्राप्त कर सकते हैं, जैसे महीने या सप्ताह के दिन आदि
- यहाँ पर आउटपुट दिखाता है कि हमने स्थानीय सिस्टम से महीनों का नाम प्रिंट कर लिया है। इसी तरह, आप सप्ताह के दिनों का नाम भी प्राप्त कर सकते हैं जैसा कि नीचे दिखाया गया है
-
आउटपुट स्थानीय सिस्टम पर निर्भर करेगा, मान लीजिए कि अगर आपका स्थानीय सिस्टम किसी दूसरे देश का है तो यह उस देश की स्थानीय सेटिंग के अनुसार आउटपुट देगा। यहाँ हमारे पास महीने हैं इसलिए इसमें कोई अंतर नहीं होगा लेकिन अगर यह एक सप्ताह या दिन है, तो निश्चित रूप से इसमें अंतर होगा।
चरण 5) आप पूरे वर्ष के लिए विशिष्ट दिन की सूची प्राप्त कर सकते हैं। उदाहरण के लिए, हर पहले दिन एक ऑडिट दिवस होता है Monday एक सप्ताह का। आप पहली तारीख जानना चाहते हैं Monday प्रत्येक महीने के लिए। आप इस कोड का उपयोग कर सकते हैं
- mycal = Calendar.monthcalendar(2025, month) महीने के लिए कैलेंडर बनाएगा
- कैलेंडर के पहले और दूसरे सप्ताह के लिए वेरिएबल week1 और week2 सेट करें
- जाँचें कि सप्ताह 1 में क्या शामिल है Monday, ऑडिट दिन निर्धारित करें
- अन्यथा ऑडिट दिवस को प्रथम दिन के रूप में निर्धारित करें Monday सप्ताह 2 में
- आउटपुट पहले की तारीख दिखाता है Monday जो उस महीने में आता है।
- इस कैल ऑब्जेक्ट की लंबाई एक निश्चित लंबाई होगी, जो इस बात पर आधारित होगी कि महीने में कितने सप्ताह हैं। हमारे मामले में, यह पहले एक या दो होगा Monday सप्ताह का सबसे बड़ा हिस्सा पहले सप्ताह में होगा, लेकिन अगर ऐसा नहीं है तो दूसरे सप्ताह पर विचार करें। आइए विस्तार से देखें कि हम दूसरे सप्ताह पर भी विचार क्यों करते हैं।
- यहां हम कैलेंडर के स्थिरांक का उपयोग कर रहे हैं Monday, कैलेंडर ऑब्जेक्ट आपको स्थिरांक देता है जो रविवार को दर्शाता है, Monday, मंगलवार, इत्यादि, इत्यादि। हमने इन्हें पहले भी देखा है। इसलिए, यदि सप्ताह एक में दिन को द्वारा दर्शाया गया है Monday स्थिरांक 0 के बराबर नहीं है, याद रखें शून्य का मतलब है ऐसे दिन जो दूसरे महीने के हैं। तो, इस मामले में, अगर यह शून्य है, तो यह एक होगा Monday जो पिछले महीने का है। लेकिन अगर पहला Monday 0 के बराबर नहीं है, इसका मतलब है कि मेरा ऑडिट दिन पहले सप्ताह के भीतर होगा। अन्यथा, यदि वह 0 है, तो पहला Monday यह महीने के पहले सप्ताह में नहीं है, यह दूसरे सप्ताह में होना चाहिए।
- तो, फिर मैं कहता हूँ ठीक है, मेरे ऑडिट दिन चर को सेट करें Monday सप्ताह दो द्वारा दर्शाया गया है। इसलिए, ऑडिट दिवस पहले या दूसरे सप्ताह के लिए जो भी दिन होगा, उसके साथ वापस आने वाला है।
यहाँ पूरा कोड है
Python 2 उदाहरण
import calendar # Create a plain text calendar c = calendar.TextCalendar(calendar.THURSDAY) str = c.formatmonth(2025, 1, 0, 0) print str # Create an HTML formatted calendar hc = calendar.HTMLCalendar(calendar.THURSDAY) str = hc.formatmonth(2025, 1) print str # loop over the days of a month # zeroes indicate that the day of the week is in a next month or overlapping month for i in c.itermonthdays(2025, 4): print i # The calendar can give info based on local such a names of days and months (full and abbreviated forms) for name in calendar.month_name: print name for day in calendar.day_name: print day # calculate days based on a rule: For instance an audit day on the second Monday of every month # Figure out what days that would be for each month, we can use the script as shown here for month in range(1, 13): # It retrieves a list of weeks that represent the month mycal = calendar.monthcalendar(2025, month) # The first MONDAY has to be within the first two weeks week1 = mycal[0] week2 = mycal[1] if week1[calendar.MONDAY] != 0: auditday = week1[calendar.MONDAY] else: # if the first MONDAY isn't in the first week, it must be in the second week auditday = week2[calendar.MONDAY] print "%10s %2d" % (calendar.month_name[month], auditday)
Python 3 उदाहरण
import calendar # Create a plain text calendar c = calendar.TextCalendar(calendar.THURSDAY) str = c.formatmonth(2025, 1, 0, 0) print(str) # Create an HTML formatted calendar hc = calendar.HTMLCalendar(calendar.THURSDAY) str = hc.formatmonth(2025, 1) print(str) # loop over the days of a month # zeroes indicate that the day of the week is in a next month or overlapping month for i in c.itermonthdays(2025, 4): print(i) # The calendar can give info based on local such a names of days and months (full and abbreviated forms) for name in calendar.month_name: print(name) for day in calendar.day_name: print(day) # calculate days based on a rule: For instance an audit day on the second Monday of every month # Figure out what days that would be for each month, we can use the script as shown here for month in range(1, 13): # It retrieves a list of weeks that represent the month mycal = calendar.monthcalendar(2025, month) # The first MONDAY has to be within the first two weeks week1 = mycal[0] week2 = mycal[1] if week1[calendar.MONDAY] != 0: auditday = week1[calendar.MONDAY] else: # if the first MONDAY isn't in the first week, it must be in the second week auditday = week2[calendar.MONDAY] print("%10s %2d" % (calendar.month_name[month], auditday))
सारांश
- In Pythonआप कैलेंडर को अपनी इच्छानुसार प्रारूपित कर सकते हैं, जैसे कि आप महीने के आरंभ का दिन बदल सकते हैं
- कैलेंडर को HTML प्रारूप में प्रिंट करें
- स्थानीय सिस्टम से डेटा प्राप्त करें, जैसे महीने या सप्ताह के दिन
- पूरे वर्ष के विशिष्ट दिन की सूची प्राप्त करें