जावास्क्रिप्ट में कैलेंडर कार्यान्वयन पर चर्चा

हमारा कैलेंडर एक तालिका है जिसमें 1 से लेकर महीने के अंतिम दिन तक की संख्याएँ होती हैं। समस्या यह है कि तालिका में संख्याओं को पहली पंक्ति में पहली सेल से शुरू नहीं होना चाहिए।

यह सामान्य रूप से स्पष्ट है। यह स्पष्ट नहीं है कि वास्तव में किस सेल से शुरुआत करनी चाहिए। आइए सोचते हैं।

मान लें कि सप्ताह सोमवार से शुरू होता है, और वह शून्यवाँ दिन है। इस स्थिति में, महीने के पहले दिन का सप्ताह दिन संख्या, उससे पहले रिक्त सेलों की संख्या के बराबर होता है। उदाहरण के लिए, गुरुवार का दिन संख्या 3 होगा और उससे पहले 3 रिक्त सेल होंगे।

एक समान समस्या तालिका के अंत में भी होगी। वहाँ भी महीने के अंतिम दिन के बाद रिक्त सेल छोड़ने की आवश्यकता होगी। इस स्थिति में, रिक्त सेलों की संख्या छः होगी, जिसमें से महीने के अंतिम दिन के सप्ताह दिन संख्या को घटाना होगा।

अब सोचते हैं कि हम अपनी तालिका कैसे बनाएंगे। जाहिर है, सबसे सुविधाजनक तरीका एक द्वि-आयामी सरणी रखना है, जिसकी प्रत्येक उप-सरणी में 7 तत्व हों (= सप्ताह में दिनों की संख्या)। इसके साथ ही, पहली और अंतिम उप-सरणी में कुछ तत्व रिक्त होने चाहिए।

कार्यों की एल्गोरिदम

आइए एक फ़ंक्शन बनाते हैं, जो 1 से महीने के अंतिम दिन तक की संख्याओं की एक सरणी बनाएगा। फिर एक फ़ंक्शन बनाते हैं, जो सरणी की शुरुआत में आवश्यक संख्या में रिक्त तत्व जोड़ देगा। एक समान फ़ंक्शन को सरणी के अंत में रिक्त तत्व जोड़ने चाहिए।

इसके बाद, हमारे पास एक एक-आयामी सरणी प्राप्त होगी जिसमें तत्वों की संख्या, 7 के गुणज में होगी। इस सरणी को 7 तत्वों प्रति उप-सरणी में द्वि-आयामी सरणी में बदलें।

फिर इस द्वि-आयामी सरणी को लें, लूप्स से पुनरावृत्त करें और हमारी तालिका बनाएं।

कार्यों के इस एल्गोरिदम को हम अगले पाठों में चरणबद्ध तरीके से निष्पादित करेंगे।