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

C++-এ সপ্তাহের দিন বের করা (Zeller's Algorithm)


মান লোয়া একটি তারিখ (দিন, মাস এবং বছর)। এই তারিখ থেকে সপ্তাহের দিন বের করতে হবে। এটি সমাধানের জন্য আমরা জেলারের অ্যালগরিদম (Zeller’s Algorithm) ব্যবহার করব। জেলারের অ্যালগরিদম দিয়ে সপ্তাহের দিন বের করার সূত্র নিচে দেওয়া হলো

𝑤=$$\lgroup d+\lfloor \frac{13(m+1)}{5} \rfloor+y+\lfloor\frac{y}{4} \rfloor+\lfloor\frac{c}{4} \rfloor+5c \rgroup mod 7$$

সূত্রটি কিছু ভেরিয়েবল ধারণ করে; সেগুলো হলো −

d − তারিখের দিন।

m − এটি মাস কোড। মার্চ থেকে ডিসেম্বরের জন্য এটি 3 থেকে 12, জানুয়ারির জন্য 13, এবং ফেব্রুয়ারির জন্য 14। যখন জানুয়ারি বা ফেব্রুয়ারি বিবেচনা করা হয়, তবে দেওয়া বছরে ১ কমাতে হবে।

y − বছরের শেষ দুটি অঙ্ক

c − বছরের প্রথম দুটি অঙ্ক

w − সপ্তাহের দিন। যখন এটি ০, তবে শনিবার, যখন ৬, তবে শুক্রবার।

উদাহরণস্বরূপ, যদি ৪ জানুয়ারি ১৯৯৭-এর সপ্তাহের দিন বের করতে চাই, তবে আউটপুট হবে “Saturday”

অ্যালগরিদমটি নিচের \−

অ্যালগরিদম

zellersAlgorithm(day, month, year)

ইনপুট − দিনের তারিখ।

আউটপুট − কোন দিন ছিল, (রবিবার থেকে শনিবার)।

Begin    if month > 2, then       mon := month    else       mon := 12 + month       decrease year by 1    y := last two digit of the year    c := first two digit of the year    w := day + floor((13*(mon+1))/5) + y + floor(y/4) + floor(c/4) + 5*c    w := w mod 7    return weekday[w] //weekday will hold days from Saturday to Friday End

উদাহরণ (C++)

#include <iostream> #include <cmath> using namespace std; string weekday[7] = {"Saturday","Sunday","Monday","Tuesday", "Wednesday","Thursday","Friday"}; string zellersAlgorithm(int day, int month, int year){    int mon;    if(month > 2)       mon = month; //মার্চ থেকে ডিসেম্বরের জন্য মাস কোড মাসের সমান    else{       mon = (12+month); //জানুয়ারি এবং ফেব্রুয়ারির জন্য মাস কোড 13 এবং 14       year--; //জানুয়ারি এবং ফেব্রুয়ারির জন্য বছর ১ কমান    }    int y = year % 100; //শেষ দুটি অঙ্ক    int c = year / 100; //প্রথম দুটি অঙ্ক    int w = (day + floor((13*(mon+1))/5) + y + floor(y/4) + floor(c/4) + (5*c));    w = w % 7;    return weekday[w]; } int main(){    int day, month, year;    cout << "Enter Day: "; cin >>day;    cout << "Enter Month: "; cin >>month;    cout << "Enter Year: "; cin >>year;    cout << "It was: " <<zellersAlgorithm(day, month, year); }

ইনপুট

(4, 1, 1997)

আউটপুট

Enter Day: 4 Enter Month: 1 Enter Year: 1997 It was: Saturday

  1. PHP MySQL-এ টাইমস্ট্যাম্প থেকে দিন/মাস/বছর বের করা

  2. MySQL-এ বর্তমান দিন, মাস, বছরের রেকর্ড ফিল্টার করা

  3. C++-এ The Maze II সমস্যা: গোলাপταν গেঁদের ন্যূনতম দূরত্ব

  4. C++-এ মেজ সমস্যা: বল দিয়ে পথ খুঁজে বের করা