परिचय
ज़ेलर का एल्गोरिदम किसी दिए गए तिथि से सप्ताह का दिन ज्ञात करने के लिए उपयोग किया जाता है। ज़ेलर के एल्गोरिदम का उपयोग करके सप्ताह का दिन ज्ञात करने का सूत्र यहाँ है:

सूत्र में कुछ चर हैं; वे हैं:
- d - तिथि का दिन।
- m: यह महीना कोड है। मार्च से दिसंबर तक यह 3 से 12 है, जनवरी के लिए यह 13 है, और फरवरी के लिए यह 14 है। जब हम जनवरी या फरवरी पर विचार करते हैं, तो दिए गए वर्ष को 1 से घटा दिया जाएगा।
- y - वर्ष के अंतिम दो अंक
- c - वर्ष के पहले दो अंक
- w - सप्ताह का दिन। जब यह 0 है, तो यह शनिवार है, जब यह 6 है, तो इसका मतलब शुक्रवार है
इनपुट और आउटपुट
इनपुट: दिन, महीना और वर्ष: 4, 1, 1997 आउटपुट: यह था: शनिवार
एल्गोरिदम
zellersAlgorithm(day, month, year)
इनपुट: दिन की तिथि
आउटपुट: यह कौन सा दिन था, (रविवार से शनिवार)।
Begin
यदि 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
weekday[w] लौटाएं // weekday शनिवार से शुक्रवार तक दिन धारण करेगा
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);
}
आउटपुट
Enter Day: 04 Enter Month: 01 Enter Year: 1997 It was: Saturday