मान लीजिए हमारे पास एक तारीख (दिन, महीना और वर्ष) है। इस तारीख से, हमें उस दी गई तारीख का सप्ताह का दिन ढूंढना है। इसे हल करने के लिए हम जेलर के एल्गोरिदम का उपयोग करेंगे। जेलर के एल्गोरिदम का उपयोग करके सप्ताह का दिन ढूंढने का सूत्र यहां है
𝑤=$$\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 है। जब हम जनवरी या फरवरी पर विचार करते हैं, तो दिए गए वर्ष को 1 से घटा दिया जाएगा।
y - वर्ष के अंतिम दो अंक
c - वर्ष के पहले दो अंक
w - सप्ताह का दिन। जब यह 0 होता है, तो यह शनिवार है, जब यह 6 होता है, तो इसका मतलब शुक्रवार है
उदाहरण के लिए, यदि हम 4 जनवरी 1997 का सप्ताह का दिन प्राप्त करना चाहते हैं, तो आउटपुट "शनिवार" होगा
एल्गोरिदम इस प्रकार है -
एल्गोरिदम
zellersAlgorithm(day, month, year)
इनपुट - दिन की तारीख।
आउटपुट - यह कौन सा दिन था, (रविवार से शनिवार)।
शुरू
यदि month > 2, तो
mon := month
अन्यथा
mon := 12 + month
वर्ष को 1 से घटाएं
y := वर्ष के अंतिम दो अंक
c := वर्ष के पहले दो अंक
w := day + floor((13*(mon+1))/5) + y + floor(y/4) + floor(c/4) + 5*c
w := w mod 7
return weekday[w] //weekday शनिवार से शुक्रवार तक के दिनों को रखेगा
अंत
उदाहरण (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