কম্পিউটার টিউটোরিয়াল

দুই তারিখের মধ্যবর্তী দিনের সংখ্যা খুঁজে বের করা C++-এ

এই সমস্যায়, আমাদের দুটি অ্যারে date1[] এবং date2[] দেওয়া আছে যারা ৩টি পূর্ণসংখ্যা দিয়ে DD-MM-YYYY ফরম্যাটে তারিখ নির্দেশ করে। আমাদের কাজ হল দুটি দেওয়া তারিখের মধ্যবর্তী দিনের সংখ্যা খুঁজে বের করা।

উদাহরণ

ইনপুট

date1[] = {13, 3, 2021}, date2[] = {24, 5, 2023}

আউটপুট

802

ব্যাখ্যা

পার্থক্য হল ২ বছর, ২ মাস (৩ - ৫) এবং ১১ দিন।

২×৩৬৫ + (৩০ + ৩১) + ১১ = ৮০২

সমাধানের পদ্ধতি

এই সমস্যার সহজ সমাধান হল লুপিং: শুরু থেকে date1 থেকে date2 পর্যন্ত দিন গণনা করা। এবং মান রিটার্ন করা। এই পদ্ধতি ঠিক আছে, কিন্তু আরও দক্ষ পদ্ধতি থাকতে পারে।

দক্ষ পদ্ধতি

একটি আরও দক্ষ পদ্ধতি হল দুটি তারিখ date1[] এবং date2[] পর্যন্ত মোট দিনের সংখ্যা গণনা করা। এবং তারপর দুটির পরম পার্থক্য বের করা যা ফলাফল দেবে।

date1[] থেকে ০১/০১/০০০০ পর্যন্ত দিনের সংখ্যা গণনা করতে:

বছর

date1[2] বছরটির প্রথম দিন পর্যন্ত দিনের সংখ্যা:

দিনের সংখ্যা = ৩৬৫×(বছর) + লিপ ইয়ারের সংখ্যা

মাস

মাসের প্রথম দিন পর্যন্ত দিনের সংখ্যা। মাস অ্যারে থেকে গণনা।

দিনের সংখ্যা = monthDays[date[1]]।

monthDays মাসের প্রথম তারিখ পর্যন্ত মোট দিনের সংখ্যা স্টোর করবে।

তারিখ

তারিখের দিনের সংখ্যা।

এই সবগুলো যোগ করলে date1[] তারিখ পর্যন্ত দিনের কাউন্ট পাওয়া যাবে। দুটি কাউন্টের পার্থক্য হল ফলাফল।

প্রোগ্রাম উদাহরণ

#include <iostream>
#include <math.h>
using namespace std;

const int monthDays[12] = { 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 };

int countLeapYearDays(int d[]) {
    int years = d[2];
    if (d[1] <= 2)
        years--;
    return ((years / 4) - (years / 100) + (years / 400));
}

int countNoOfDays(int date1[], int date2[]) {
    long int dayCount1 = (date1[2] * 365);
    dayCount1 += monthDays[date1[1] - 1]; // মাস ০-বেসড ইন্ডেক্স
    dayCount1 += date1[0];
    dayCount1 += countLeapYearDays(date1);
    
    long int dayCount2 = (date2[2] * 365);
    dayCount2 += monthDays[date2[1] - 1];
    dayCount2 += date2[0];
    dayCount2 += countLeapYearDays(date2);
    
    return (abs(dayCount1 - dayCount2));
}

int main() {
    int date1[3] = {13, 3, 2021};
    int date2[3] = {24, 5, 2023};
    cout << "The number of days between two dates is " << countNoOfDays(date1, date2);
    return 0;
}

আউটপুট

The number of days between two dates is 802
  1. C++ ব্যবহার করে ম্যাট্রিক্সের দুটি ডায়াগোনালের যোগফলের পার্থক্য বের করা

  2. PHP-এ দুটি তারিখের মধ্যে প্রতিটি সপ্তাহের দিনের সংখ্যা বের করার প্রোগ্রাম

  3. PHP-এ যেকোনো দুটি তারিখের মধ্যবর্তী মোট দিনের সংখ্যা বের করার প্রোগ্রাম

  4. Python প্রোগ্রাম: دوটি প্রদত্ত তারিখের মাঝপথে দিনের সংখ্যা বের করা