ধরুন আমাদের একটি তারিখ (দিন, মাস এবং বছর) আছে। এই তারিখ থেকে, আমাদের সেই প্রদত্ত তারিখের সপ্তাহের দিন খুঁজে বের করতে হবে। এটি সমাধান করতে আমরা 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 মোড 7$$
সূত্রে কিছু ভেরিয়েবল রয়েছে; তারা হল -
d - তারিখের দিন।
মি - এটি মাসের কোড। মার্চ থেকে ডিসেম্বরের জন্য, এটি 3 থেকে 12, জানুয়ারির জন্য এটি 13 এবং ফেব্রুয়ারির জন্য এটি 14৷ আমরা যখন জানুয়ারী বা ফেব্রুয়ারি বিবেচনা করি, তখন প্রদত্ত বছরটি 1 দ্বারা হ্রাস পাবে৷
y − বছরের শেষ দুটি সংখ্যা
c - বছরের প্রথম দুটি সংখ্যা
w - সপ্তাহের দিন। যখন এটি 0 হয়, এটি শনিবার, যখন এটি 6 হয়, এর অর্থ শুক্রবার
সুতরাং উদাহরণস্বরূপ, যদি আমরা 4 জানুয়ারী 1997 এর সপ্তাহের দিন পেতে চাই, তাহলে আউটপুট হবে "শনিবার"
অ্যালগরিদম নিম্নরূপ -
অ্যালগরিদম
জেলার অ্যালগরিদম(দিন, মাস, বছর)
ইনপুট - দিনের তারিখ।
আউটপুট − কোন দিন ছিল, (রবিবার থেকে শনিবার)।
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
#include
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);
} ইনপুট
(4, 1, 1997)
আউটপুট
Enter Day: 4 Enter Month: 1 Enter Year: 1997 It was: Saturday