Zeller's Algorithm একটি প্রদত্ত তারিখ থেকে সপ্তাহের দিন খুঁজে বের করতে ব্যবহৃত হয়৷ জেলারের অ্যালগরিদম ব্যবহার করে সপ্তাহের দিন খোঁজার সূত্রটি এখানে রয়েছে:
সূত্রে কিছু ভেরিয়েবল রয়েছে; তারা হল -
d - তারিখের দিন।
m:এটা মাসের কোড। মার্চ থেকে ডিসেম্বর পর্যন্ত এটি 3 থেকে 12, জানুয়ারির জন্য এটি 13 এবং ফেব্রুয়ারির জন্য এটি 14৷ আমরা যখন জানুয়ারী বা ফেব্রুয়ারি বিবেচনা করি, তখন প্রদত্ত বছরটি 1 দ্বারা হ্রাস পাবে৷
y − বছরের শেষ দুটি সংখ্যা
c − বছরের প্রথম দুটি সংখ্যা
w - সপ্তাহের দিন। যখন এটি 0 হয়, এটি শনিবার, যখন এটি 6 হয়, এর অর্থ শুক্রবার
ইনপুট এবং আউটপুট
Input: The day, month and the year: 4, 1, 1997 Output: It was: 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
উদাহরণ
#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; //for march to december month code is same as month else { mon = (12+month); //for Jan and Feb, month code will be 13 and 14 year--; //decrease year for month Jan and Feb } int y = year % 100; //last two digit int c = year / 100; //first two digit 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); }
আউটপুট
Enter Day: 04 Enter Month: 01 Enter Year: 1997 It was: Saturday