জাভাস্ক্রিপ্টে ক্যালেন্ডার বাস্তবায়ন আলোচনা
আমাদের ক্যালেন্ডারটি একটি টেবিল
যাতে 1 থেকে মাসের শেষ দিন পর্যন্ত সংখ্যা থাকে।
সমস্যা হল যে, টেবিলের প্রথম সারির সংখ্যাগুলি
প্রথম সেল থেকে শুরু হবে না।
এটি সাধারণভাবে স্পষ্ট। এটি ঠিক কোন সেল থেকে শুরু করতে হবে তা স্পষ্ট নয়। আসুন চিন্তা করি।
ধরুন সপ্তাহ সোমবার থেকে শুরু হয়, এবং
এটি শূন্যতম দিন। এই ক্ষেত্রে, মাসের প্রথম দিনের
সপ্তাহের দিনের সংখ্যা তার আগে থাকা খালি সেলের
সংখ্যার সাথে মিলে যায়। উদাহরণস্বরূপ,
বৃহস্পতিবারের সংখ্যা হবে 3 এবং তার
আগে 3টি খালি সেল থাকবে।
একই সমস্যা টেবিলের শেষে আমাদের অপেক্ষা করবে। সেখানেও মাসের শেষ সংখ্যার পরে খালি সেল রাখতে হবে। এই ক্ষেত্রে, খালি সেলের সংখ্যা ছয়ের সমান হবে, যেখান থেকে মাসের শেষ দিনের সপ্তাহের দিনের সংখ্যা বিয়োগ করতে হবে।
এখন চিন্তা করি, আমরা কীভাবে আমাদের
টেবিলটি গঠন করব। এটা স্পষ্ট যে, একটি দ্বি-মাত্রিক অ্যারে
থাকা সবচেয়ে সুবিধাজনক, যার প্রতিটি উপ-অ্যারেতে
7টি উপাদান থাকবে (= সপ্তাহের দিনের সংখ্যা)।
এক্ষেত্রে, প্রথম এবং শেষ উপ-অ্যারেতে কিছু উপাদান খালি থাকবে।
কর্মের অ্যালগরিদম
আসুন একটি ফাংশন তৈরি করি যা 1 থেকে মাসের শেষ দিন পর্যন্ত
সংখ্যার একটি অ্যারে তৈরি করবে।
তারপর একটি ফাংশন তৈরি করি যা অ্যারের
শুরুতে প্রয়োজনীয় সংখ্যক খালি উপাদান যোগ করবে।
একই রকম একটি ফাংশন অ্যারের শেষে
খালি উপাদান যোগ করবে।
এর পরে আমাদের কাছে একটি এক-মাত্রিক অ্যারে
থাকবে যার উপাদানের সংখ্যা 7 দ্বারা বিভাজ্য।
এই অ্যারেটিকে 7টি উপাদান সহ উপ-অ্যারেতে
দ্বি-মাত্রিক অ্যারেতে রূপান্তরিত করি।
তারপর এই দ্বি-মাত্রিক অ্যারেটি নিয়ে, লুপ দিয়ে ঘুরিয়ে আমাদের টেবিলটি গঠন করব।
আমরা পরবর্তী পাঠগুলোতে ধাপে ধাপে এই কর্মের অ্যালগরিদম নির্বাহ করব।