Introduction
Century codes और day formulas (जैसे Zeller’s Rule) आपको किसी भी Gregorian कैलेंडर तिथि के लिए weekday तेज़ी से और विश्वसनीय रूप से निकालने देते हैं। यह पैटर्न महत्वपूर्ण है क्योंकि यह एक formula-आधारित, परीक्षा-मैत्री तरीका देता है जो वर्ष-दर-वर्ष गिनती से बचाता है और शताब्दी-सीमाओं के पार तारीखों पर भी अच्छी तरह काम करता है।
Pattern: Century Code & Day Formula (Zeller’s Rule)
Pattern
मुख्य विचार: तारीख को घटकों में बदलें (दिन, समायोजित महीना, century का year-of-century और century), month और century codes तथा वर्ष के योगदान और leap समायोजन लागू करें, सबको जोड़ें और modulo 7 लें ताकि weekday मिल सके।
हम Zeller’s congruence (Gregorian कैलेंडर) का उपयोग करते हैं जहाँ महीने को इस तरह लिया जाता है: March = 3 … December = 12, और January/February को पिछले वर्ष के महीने 13/14 माना जाता है।
इस सूत्र का प्रयोग करें:
h = ( q + floor(13*(m+1)/5) + K + floor(K/4) + floor(J/4) + 5*J ) mod 7
जहाँ:
q= महीने का दिनm= महीना (3 = Mar, …, 12 = Dec; Jan = 13, Feb = 14 पिछले वर्ष के)K= year of century (year % 100)J= zero-based century (floor(year / 100))h= 0 → Saturday, 1 → Sunday, 2 → Monday, … 6 → Friday
Step-by-Step Example
Question
26 January 1950 किस दिन था?
Solution
-
Step 1: Zeller के लिए महीना और वर्ष समायोजित करें
January को पिछले वर्ष का महीना 13 मानें। तो उपयोग करें:q = 26,m = 13, औरyear = 1949। -
Step 2: K और J निकालें
K = year % 100 = 1949 % 100 = 49.
J = floor(year / 100) = floor(1949 / 100) = 19. -
Step 3: सूत्र के पुर्जे निकालें
floor(13*(m+1)/5) = floor(13*(14)/5) = floor(182/5) = 36floor(K/4) = floor(49/4) = 12floor(J/4) = floor(19/4) = 45*J = 5*19 = 95
h = ( q + 36 + K + 12 + 4 + 95 ) mod 7=(26 + 36 + 49 + 12 + 4 + 95) mod 7.
कुल =222. -
Step 4: modulo 7 लें
222 mod 7 = 5. Zeller के अनुसारh = 5का मतलब है Thursday (0 = Sat, 1 = Sun, 2 = Mon, 3 = Tue, 4 = Wed, 5 = Thu, 6 = Fri). -
Final Answer:
26 January 1950 Thursday था। -
Quick Check:
alternate odd-day विधि या ऐतिहासिक कैलेंडर से cross-check करें - दोनों पुष्टि करते हैं कि यह Thursday था। ✅
Quick Variations
1. Zeller’s में महीनों को Mar→3 … Jan→13, Feb→14 मानें (और Jan/Feb के लिए वर्ष घटाएँ)।
2. तेज़ मानसिक गणना के लिए आप month codes और century codes पहले से याद कर सकते हैं, और फिर सरल रूप का उपयोग करें: weekday = (day + month_code + year_code + century_code + leap_adjust) mod 7।
3. Tomohiko Sakamoto का algorithm या Doomsday rule भी वैकल्पिक तरीके हैं जो मानसिक गणना में तेज़ हो सकते हैं; जो तरीका आपको बेहतर सूट करे वह चुनें।
4. हमेशा अपने फ़ॉर्मूले में उपयोग होने वाले weekday mapping को सत्यापित करें (Zeller में Saturday = 0 होता है)।
Trick to Always Use
- अगर
month ≤ 2(जैसे Jan/Feb) हो तोmonthमें+12करें औरyearसे1घटा करKतथाJनिकालें। floor(13*(m+1)/5)के मान (month offsets) को m = 3..14 के लिए पहले से निकाल कर रखें ताकि बार-बार भाग न करना पड़े।- आम सदीयों के लिए
5*Jऔरfloor(J/4)के adjustments याद रखें ताकि गणना तेज़ हो। - बड़े मध्यवर्ती योगों को जल्दी ही mod 7 कर दें ताकि अंकगणित छोटा रहे और त्रुटि कम हो।
Summary
Summary
- तिथि को
q, समायोजितm,K, औरJमें बदलें। (Jan/Feb के लिए महीने 13/14 और पिछले वर्ष का प्रयोग करें.) - Zeller का सूत्र लागू करें:
h = ( q + floor(13*(m+1)/5) + K + floor(K/4) + floor(J/4) + 5*J ) mod 7. hको weekday के रूप में पढ़ें जहाँ 0 = Sat, 1 = Sun, …, 6 = Fri.- मासिक/सदी कोड पहले से रख लें और अक्सर mod 7 करके मैन्युअल काम को सरल बनाएं।
याद रखने के लिए उदाहरण: 26 January 1950 → Thursday.
