এই সমস্যায়, আমাদেরকে 3টি পূর্ণসংখ্যা নিয়ে গঠিত date1[] এবং date2 দুটি অ্যারে দেওয়া হয়েছে যা daes-এর DD-MM-YYYY নির্দেশ করে। আমাদের কাজ হল দুটি প্রদত্ত তারিখের মধ্যে দিনের সংখ্যা খুঁজে বের করা।
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
ইনপুট
date1[] ={13, 3, 2021}, date2[] ={24, 5, 2023}
আউটপুট
802
ব্যাখ্যা
পার্থক্য হল 2 বছর, 2 মাস (3 - 5) এবং 11 দিন৷
৷2*356 + (30 + 31) + 11 =802
সমাধান পদ্ধতি
সমস্যার একটি সহজ সমাধান হল লুপ করা, শুরুর তারিখ থেকে শুরু করে তারিখ 1 থেকে তারিখ 2 পর্যন্ত দিনের সংখ্যা গণনা করা। এবং মান ফেরত. এই পদ্ধতিটি ঠিক আছে, তবে আরও কার্যকর পদ্ধতি সেখানে থাকতে পারে।
দক্ষ পদ্ধতি
তারিখ 1 [] এবং তারিখ 2 [] উভয় তারিখ পর্যন্ত মোট দিনের সংখ্যা গণনা করে সমস্যাটির একটি আরও কার্যকর পদ্ধতি। এবং তারপর উভয়ের মধ্যে পরম পার্থক্য ফলাফল দেয়।
01/01/0000 থেকে উভয় তারিখ 1[] পর্যন্ত দিনের সংখ্যা গণনা করতে।
বছর
বছরের প্রথম দিন তারিখ পর্যন্ত দিনের সংখ্যা1[2]
<পূর্ব>দিনের সংখ্যা =365*(বছর) + সংখ্যা। অধিবর্ষেরমাস
মাসের ১ম দিন পর্যন্ত বেশ কিছু দিনের জন্য। মাস অ্যারে থেকে গণনা করুন৷
৷দিনের সংখ্যা =মাসের দিন[তারিখ[1]]।
monthDays মাসের ১ম তারিখ পর্যন্ত মোট দিনের সংখ্যা সংরক্ষণ করবে।
তারিখ
দিনের সংখ্যা।
এই সবের যোগফল তারিখ পর্যন্ত দিনের গণনা দেয় 1[]। গণনার মধ্যে পার্থক্য হল ফলাফল।
আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,
উদাহরণ
#include#include নেমস্পেস ব্যবহার করে std;const int monthDays[12] ={ 31, 59, 90, 120, 151, 181, 212, 243,273, 304, 334, 35} int countLeapYearDays(int d[]){ int years =d[2]; যদি (d[1] <=2) বছর--; রিটার্ন ( (বছর / 4) - (বছর / 100) + (বছর / 400));}int countNoOfDays(int date1[], int date2[]){ long int dayCount1 =(date1[2] * 365); dayCount1 +=মাস দিন[তারিখ1[1]]; dayCount1 +=date1[0]; dayCount1 +=countLeapYearDays(date1); long int dayCount2 =(date2[2]*365); dayCount2 +=মাস দিন[তারিখ 2[1]]; dayCount2 +=date2[0]; dayCount2 +=countLeapYearDays(date2); রিটার্ন ( abs(dayCount1 - dayCount2));}int main(){int date1[3] ={13, 3, 2021}; int date2[3] ={24, 5, 2023}; cout<<"দুটি তারিখের মধ্যে দিনের সংখ্যা হল "< আউটপুট
দুটি তারিখের মধ্যে দিনের সংখ্যা হল 802