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

C++-এ দেওয়া বছরের ক্যালেন্ডার প্রিন্ট করুন

একটি বছর দেওয়া আছে। ঐ বছরের পূর্ণ ক্যালেন্ডার প্রিন্ট করতে হবে (সব মাস, তারিখ, দিন)।

প্রয়োজনীয় ক্যালকুলেশন
  • প্রতিটি মাসের দিনের সংখ্যা (লিপ ইয়ার বিবেচনা করে ফেব্রুয়ারি)।
  • প্রতিটি মাসের ১ তারিখ কোন দিন (সোমবার, মঙ্গলবার...) — জেলার ফর্মুলা বা Zeller's Congruence ব্যবহার করা হয়।
উদাহরণ কোড (২০১৯ সালের ক্যালেন্ডার)
#include <iostream>
using namespace std;

int dayNumber(int day, int month, int year) {
    static int t[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};
    year -= month < 3;
    return (year + year/4 - year/100 + year/400 + t[month-1] + day) % 7;
}

string getMonthName(int monthNumber) {
    string months[] = {"January", "February", "March", "April", "May", "June",
                       "July", "August", "September", "October", "November", "December"};
    return months[monthNumber];
}

int numberOfDays(int monthNumber, int year) {
    switch(monthNumber) {
        case 0: case 2: case 4: case 6: case 7: case 9: case 11: return 31;
        case 1:
            if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) return 29;
            else return 28;
        case 3: case 5: case 8: case 10: return 30;
    }
    return 0;
}

void printCalendar(int year) {
    cout << "\t\t\t Calendar - Year " << year;
    int current = dayNumber(1, 1, year);
    for (int i = 0; i < 12; i++) {
        int days = numberOfDays(i, year);
        cout << endl << "\t\t ----X----" << getMonthName(i).c_str() << "----X---- \t\t" << endl;
        cout << " Sun Mon Tue Wed Thu Fri Sat \n";
        int k;
        for (k = 0; k < current; k++) cout << "\t";
        for (int j = 1; j <= days; j++) {
            printf("%5d", j);
            if (++k > 6) { k = 0; cout << endl; }
        }
        if (k) cout << endl;
        current = k;
    }
}

int main() {
    int year = 2019;
    printCalendar(year);
    return 0;
}
আউটপুট
Calendar - Year 2019
 ----X----January----X----
 Sun Mon Tue Wed Thu Fri Sat
       1   2   3   4   5   6
 7   8   9  10  11  12  13
 14  15  16  17  18  19  20
 21  22  23  24  25  26  27
 28  29  30  31
...
(পুরো বছরের ক্যালেন্ডার)
  1. সোর্স থেকে ডেস্টিনেশন পর্যন্ত সব পথ প্রিন্ট করা C++-তে

  2. C++-এ দেয়া অ্যারে এবং k-র জন্য |ai + aj – k|-র মিনিমাম পসিবল ভ্যালু

  3. C++-এ ডিসকানেক্টেড গ্রাফের জন্য BFS

  4. পাইথনে নির্দিষ্ট মাস ও বছরের জন্য ক্যালেন্ডার প্রিন্ট করার পদ্ধতি