This guide explains the astronomical rules and logic used to generate the Vikram Samvat calendar and its lunar phases (Amavasya, Purnima, etc.).
1. The Astronomical Foundation
Unlike simple fixed calendars, this Vikram Samvat calendar uses the Jean Meeus Astronomical Algorithms to calculate the exact moments of New Moons (Amavasya) and Full Moons (Purnima) with extreme precision over a span of 10,000 years.
2. The Vikram Samvat (Hindu) Sunrise Rule
The fundamental difference between the traditional Hindu calendar (Vikram Samvat) and other lunar calendars (like the Santali or Islamic calendars) is how a "Day" (Tithi) is defined.
The Sunrise Principle (6:00 AM Local Time)
In the Hindu calendar system (Drik Siddhanta), a day is ruled by the Tithi that is active at the exact moment of Sunrise (Suryoday). For this calendar engine, sunrise is standardized to 6:00 AM.
- Rule 1: If a lunar phase (e.g., Amavasya or New Moon) ends after 6:00 AM, then that phase was active at sunrise. Therefore, that entire Gregorian day is ruled by Amavasya, and the new month (Pratipada) begins on the next day.
- Rule 2: If a lunar phase ends before 6:00 AM, then the new phase (e.g., Pratipada) is already active at sunrise. Therefore, the new month begins on that very same day.
Example: The Difference from Sunset-based Calendars
If a New Moon exactly finishes at 8:28 AM on June 15:
- Vikram Samvat Rule: Because 8:28 AM is after 6:00 AM, the sunrise of June 15 happened during Amavasya. Therefore, June 15 is considered Amavasya, and the new month (Pratipada) begins on June 16.
- Sunset Rule (Santali Muluq): Because the New Moon finished in the morning, the crescent moon is visible by sunset (5:00 PM) on June 15. So the new month starts on June 15.
By applying this 6:00 AM Sunrise Rule, the calendar accurately reflects the traditional Hindu astronomical calculations for Vikram Samvat dates.
The Two Lunar Month Systems (Purnimanta vs. Amanta)
In the Hindu calendar, there are two primary systems for defining when a month starts and ends:
- 1. Purnimanta System (पूर्णिमांत प्रणाली): The month starts the day after a Full Moon (Purnima) and ends on the next Full Moon. It is mainly used in North India (UP, Bihar, MP, Rajasthan, Haryana, Punjab, Jharkhand, etc.). In this system, the month is counted from Purnima to Purnima.
- 2. Amanta System (अमांत प्रणाली): The month starts the day after a New Moon (Amavasya) and ends on the next New Moon. It is mainly used in South and West India (Maharashtra, Gujarat, Karnataka, Andhra Pradesh, Telangana, Tamil Nadu, etc.). In this system, the month is counted from Amavasya to Amavasya.
Note: Because the Santali Calendar starts its month based on the New Moon, it aligns conceptually with the Amanta System.
3. The Core Problem: Solar vs. Lunar Years
The Vikram Samvat calendar is a lunisolar calendar, meaning it tracks both the moon phases (for months) and the solar year (for seasons).
- 1 Solar Year (Tropical Year) = 365.24219 days
- 1 Lunar Month (Synodic Month) = 29.53059 days
- 1 Lunar Year (12 Months) = 12 × 29.53059 = 354.36708 days
The Annual Deficit:
365.24219 - 354.36708 = 10.87511 days
Every year, the lunar calendar falls behind the solar calendar by approximately 11 days. If left uncorrected, the calendar would drift completely out of sync with the seasons (e.g., Chaitra would eventually fall in winter).
4. The Simple 3-Year Rule (And Why It Fails)
To fix the 11-day deficit, many traditional rules simply add an extra month (Adhik Maas) every 3 years. Let's look at the math for 3 years:
- Accumulated drift in 3 years:
10.87511 × 3 = 32.62533 days
- Length of 1 Leap Month:
29.53059 days
- Remaining unadjusted drift:
32.62533 - 29.53059 = 3.09474 days
The 3-Day Problem:
Even after adding an Adhik Maas, there is a residual drift of ~3.1 days every 3 years. If we strictly follow the "1 leap every 3 years" rule, this 3-day error accumulates:
- In 18 years = ~18 days of error
- In 114 years = ~117 days of error
5. The Traditional Rule vs. Mathematical Engine
In traditional Hindu astronomy, Adhik Maas is calculated based on the Sun's transit (Sankranti). If an entire lunar month passes without the Sun changing its Zodiac sign (Rashi), that month is declared an Adhik Maas. This usually happens once every 32.5 months.
However, calculating the exact degree of the Sun for 10,000 years requires massive astronomical ephemeris data which severely slows down digital engines. Therefore, this calendar engine relies on the universally accurate 19-Year Metonic Cycle to mathematically lock the leap years in place without needing to calculate the Sun's daily position.
The Metonic Cycle Alignment
In 432 BCE, the Greek astronomer Meton discovered a near-perfect mathematical alignment:
19 Solar Years are almost exactly equal to 235 Lunar Months.
- 19 Solar Years =
19 × 365.24219 = 6939.6016 days
- 235 Lunar Months =
235 × 29.53059 = 6939.6886 days
- Difference = 0.087 days (Only ~2.1 hours of drift per 19 years!)
Conclusion: Instead of adding exactly 6 leap months in 18 years (the simple 3-year rule), we must add 7 leap months (Adhik Maas) in 19 years. The accumulated 3-day residuals add up over 19 years to exactly form this 7th leap month, completely wiping out the drift.
6. Spacing the 7 Leap Years (The Gap Sequence)
If we have to place 7 leap years within a 19-year window, how do we space them out? If we use a strict 3-year gap (Years 1, 4, 7, 10, 13, 16, 19), the next cycle starts at Year 20. The gap between Year 19 and Year 20 is 1 Year.
Astronomical Impossibility:
You cannot have a leap year just 1 year after the previous leap year. A single year only generates 11 days of drift, which is not enough to form a 30-day month.
The Solution:
To avoid any 1-year or 4-year gaps, the 19 years must be divided into a combination of 3-year and 2-year gaps.
3 + 3 + 2 + 3 + 3 + 3 + 2 = 19 years
This creates the specific leap positions within the 19-year cycle: [1, 4, 7, 9, 12, 15, 18]
To easily understand how the 19-year cycle naturally handles the residual drift, think of it as an "Extra Days Bank Account".
- Rule 1 (Earning): Every normal solar year, we earn roughly 11 extra days, which we deposit into the bank.
- Rule 2 (Spending): Whenever the bank balance crosses 30 days, we withdraw those 30 days to buy 1 Adhik Maas (Leap Month) for that year.
Let's track the bank balance starting from 2024, leading up to the 2034 shift (the 2-year gap):
The First Cycle (2026 Leap)
- 2024: 11 days deposited.
- 2025: 11 days deposited.
- 2026: 11 days deposited. (Total: 33 days)
- We withdraw 30 days for the 2026 Adhik Maas.
- Remaining Bank Balance = 3 days.
The Second Cycle (2029 Leap)
- 2027: +11 = 14 days
- 2028: +11 = 25 days
- 2029: +11 = 36 days
- We withdraw 30 days for the 2029 Adhik Maas.
- Remaining Bank Balance = 6 days.
The Third Cycle (2032 Leap)
- 2030: +11 = 17 days
- 2031: +11 = 28 days
- 2032: +11 = 39 days
- We withdraw 30 days for the 2032 Adhik Maas.
- Remaining Bank Balance = 9 days.
The Fourth Cycle (The 2-Year Gap in 2034)
Because we already have 9 days saved up, we don't have to wait 3 full years for the balance to cross 30!
- 2033: +11 = 20 days
- 2034: +11 = 31 days! (Crossed 30 in just 2 years)
- We withdraw 30 days for the 2034 Adhik Maas.
- Remaining Bank Balance = 1 day.
If we had stubbornly waited 3 years until 2035, the bank balance would have been 31 + 11 = 42 days. This means the calendar would be out of sync with the seasons by 12 days! By leaping in 2034 instead, the calendar stays perfectly aligned.
This cycle of earning and spending continues. By the end of exactly 19 years, the fractional math perfectly balances out, and the Bank Balance hits exactly 0.00, completely resetting the cycle.
8. Why Use the Meeus Engine?
By using pure mathematics instead of hardcoded tables, this calendar:
- Automatically handles the shifting dates of lunar phases across millennia.
- Can accurately predict lunar dates thousands of years into the future or past without manual adjustments.
- Stays culturally accurate to the Drik Siddhanta rules by mapping astronomical UTC time to local Indian Standard Time (IST) sunrise occurrences.
यह गाइड विक्रम संवत (Vikram Samvat) कैलेंडर और उसके चंद्र चरणों (अमावस्या, पूर्णिमा, आदि) को उत्पन्न करने के लिए उपयोग किए जाने वाले खगोलीय नियमों और लॉजिक को समझाती है।
1. खगोलीय आधार (The Astronomical Foundation)
साधारण फिक्स्ड (fixed) कैलेंडरों के विपरीत, यह विक्रम संवत कैलेंडर जीन मीस खगोलीय एल्गोरिदम (Jean Meeus Astronomical Algorithms) का उपयोग करता है ताकि 10,000 वर्षों की अवधि में नए चाँद (अमावस्या) और पूर्ण चाँद (पूर्णिमा) के सटीक क्षणों की अत्यंत सटीकता के साथ गणना की जा सके।
2. विक्रम संवत (हिंदू) सूर्योदय नियम
पारंपरिक हिंदू कैलेंडर (विक्रम संवत) और अन्य चंद्र कैलेंडरों (जैसे संथाली या इस्लामिक कैलेंडर) के बीच मूलभूत अंतर यह है कि एक "दिन" (तिथि) को कैसे परिभाषित किया जाता है।
सूर्योदय का सिद्धांत (सुबह 6:00 बजे स्थानीय समय)
हिंदू कैलेंडर प्रणाली (दृक् सिद्धांत / Drik Siddhanta) में, दिन उस तिथि द्वारा शासित होता है जो ठीक सूर्योदय (Suryoday) के क्षण में सक्रिय होती है। इस कैलेंडर इंजन के लिए, सूर्योदय को 6:00 AM पर मानकीकृत (standardize) किया गया है।
- नियम 1: यदि कोई चंद्र चरण (जैसे, अमावस्या) सुबह 6:00 बजे के बाद समाप्त होता है, तो वह चरण सूर्योदय के समय सक्रिय था। इसलिए, उस पूरे ग्रेगोरियन (Gregorian) दिन पर अमावस्या का शासन होता है, और नया महीना (प्रतिपदा) अगले दिन से शुरू होता है।
- नियम 2: यदि कोई चंद्र चरण सुबह 6:00 बजे से पहले समाप्त हो जाता है, तो नया चरण (जैसे, प्रतिपदा) सूर्योदय के समय पहले से ही सक्रिय है। इसलिए, नया महीना उसी दिन से शुरू हो जाता है।
उदाहरण: सूर्यास्त-आधारित कैलेंडरों से अंतर
यदि कोई नया चाँद (अमावस्या) ठीक 15 जून को सुबह 8:28 बजे समाप्त होता है:
- विक्रम संवत नियम: क्योंकि सुबह 8:28, सुबह 6:00 बजे के बाद है, 15 जून का सूर्योदय अमावस्या के दौरान हुआ था। इसलिए, 15 जून को अमावस्या माना जाता है, और नया महीना (प्रतिपदा) 16 जून से शुरू होता है।
- सूर्यास्त नियम (संथाली मुल्ग): चूंकि नया चाँद सुबह समाप्त हो गया था, इसलिए 15 जून को सूर्यास्त (शाम 5:00 बजे) तक वर्धमान चाँद दिखाई दे जाएगा। इसलिए नया महीना 15 जून से ही शुरू हो जाता है।
इस 6:00 AM सूर्योदय नियम को लागू करके, यह कैलेंडर विक्रम संवत तिथियों के लिए पारंपरिक हिंदू खगोलीय गणनाओं को सटीक रूप से दर्शाता है।
चंद्र मास की दो प्रणालियां (पूर्णिमांत vs. अमांत)
हिन्दू पंचांग में महीने की शुरुआत और अंत तय करने के लिए मुख्य रूप से दो प्रणालियां (Systems) प्रचलित हैं:
- 1. पूर्णिमांत प्रणाली (Purnimanta System): इस प्रणाली में महीना पूर्णिमा के अगले दिन से शुरू होता है और अगली पूर्णिमा के दिन समाप्त होता है। (यानी पूर्णिमा से पूर्णिमा तक)। यह उत्तर भारत (उत्तर प्रदेश, बिहार, मध्य प्रदेश, राजस्थान, हरियाणा, पंजाब, झारखंड आदि) में प्रचलित है।
- 2. अमांत प्रणाली (Amanta System): इस प्रणाली में महीना अमावस्या के अगले दिन से शुरू होता है और अगली अमावस्या के दिन समाप्त होता है। (यानी अमावस्या से अमावस्या तक)। यह दक्षिण और पश्चिम भारत (महाराष्ट्र, गुजरात, कर्नाटक, आंध्र प्रदेश, तेलंगाना, तमिलनाडु आदि) में प्रचलित है।
नोट: क्योंकि संताली कैलेंडर नए चाँद (अमावस्या) के बाद से अपना महीना शुरू करता है, इसलिए यह अवधारणा में अमांत प्रणाली (Amanta System) के समान है।
3. मुख्य समस्या: सौर वर्ष (Solar) बनाम चंद्र वर्ष (Lunar)
विक्रम संवत कैलेंडर एक लूनिसोलर (lunisolar) कैलेंडर है, जिसका अर्थ है कि यह चंद्रमा के चरणों (महीनों के लिए) और सौर वर्ष (ऋतुओं/seasons के लिए) दोनों को ट्रैक करता है।
- 1 सौर वर्ष (Tropical Year) = 365.24219 दिन
- 1 चंद्र मास (Synodic Month) = 29.53059 दिन
- 1 चंद्र वर्ष (12 महीने) = 12 × 29.53059 = 354.36708 दिन
वार्षिक अंतर (Annual Deficit):
365.24219 - 354.36708 = 10.87511 दिन
हर साल, चंद्र कैलेंडर सौर कैलेंडर से लगभग 11 दिन पीछे रह जाता है। यदि इसे ठीक नहीं किया गया, तो कैलेंडर ऋतुओं के साथ पूरी तरह से सिंक (sync) से बाहर हो जाएगा (उदाहरण के लिए, 'चैत्र' का महीना खिसककर सर्दियों में आ जाएगा)।
4. साधारण 3-वर्षीय नियम (और यह क्यों फेल होता है)
11-दिन की कमी को पूरा करने के लिए, कई पारंपरिक नियम हर 3 साल में एक अतिरिक्त महीना (अधिक मास / Adhik Maas) जोड़ते हैं। आइए 3 साल का गणित देखें:
- 3 वर्षों में जमा हुआ अंतर (Drift):
10.87511 × 3 = 32.62533 दिन
- 1 लीप माह की लंबाई:
29.53059 दिन
- शेष बचा हुआ अंतर:
32.62533 - 29.53059 = 3.09474 दिन
3-दिन की समस्या:
एक अधिक मास जोड़ने के बाद भी, हर 3 साल में ~3.1 दिन का अंतर बच जाता है। यदि हम "हर 3 साल में 1 लीप" नियम का सख्ती से पालन करते हैं, तो यह 3 दिन की त्रुटि (error) जमा होती जाती है:
- 18 वर्षों में = ~18 दिन की त्रुटि
- 114 वर्षों में = ~117 दिन की त्रुटि
5. पारंपरिक नियम बनाम गणितीय इंजन
पारंपरिक हिंदू खगोल विज्ञान में, अधिक मास की गणना सूर्य के पारगमन (संक्रांति / Sankranti) के आधार पर की जाती है। यदि कोई पूरा चंद्र महीना सूर्य के अपनी राशि (Zodiac sign) बदले बिना बीत जाता है, तो उस महीने को अधिक मास घोषित किया जाता है। ऐसा आमतौर पर हर 32.5 महीने में एक बार होता है।
हालाँकि, 10,000 वर्षों के लिए सूर्य की सटीक डिग्री की गणना करने के लिए विशाल खगोलीय पंचांग (ephemeris) डेटा की आवश्यकता होती है, जो डिजिटल इंजनों को काफी धीमा कर देता है। इसलिए, यह कैलेंडर इंजन सूर्य की दैनिक स्थिति की गणना किए बिना लीप वर्षों को गणितीय रूप से लॉक करने के लिए सार्वभौमिक रूप से सटीक 19-वर्षीय मेटोनिक चक्र (Metonic Cycle) पर निर्भर करता है।
मेटोनिक चक्र संरेखण (Metonic Cycle Alignment)
432 ईसा पूर्व में, यूनानी खगोलशास्त्री मेटोन (Meton) ने एक गणितीय संरेखण की खोज की थी:
19 सौर वर्ष लगभग ठीक 235 चंद्र महीनों के बराबर होते हैं।
- 19 सौर वर्ष =
19 × 365.24219 = 6939.6016 दिन
- 235 चंद्र महीने =
235 × 29.53059 = 6939.6886 दिन
- अंतर = 0.087 दिन (19 वर्षों में केवल ~2.1 घंटे का अंतर!)
निष्कर्ष: 18 वर्षों में ठीक 6 लीप महीने जोड़ने के बजाय (साधारण 3-वर्षीय नियम), हमें 19 वर्षों में 7 लीप महीने (अधिक मास) जोड़ने होंगे। जो 3 दिन हर बार बच जाते हैं, वे 19 वर्षों में जुड़कर यह 7वां लीप महीना बनाते हैं, जिससे कैलेंडर पूरी तरह से सटीक हो जाता है।
6. 7 लीप वर्षों का गैप (Spacing the Leap Years)
यदि हमें 19 साल के चक्र में 7 लीप साल रखने हैं, तो हम उन्हें कैसे बांटें? यदि हम 3 साल का सख्त गैप रखें (वर्ष 1, 4, 7, 10, 13, 16, 19), तो अगला चक्र वर्ष 20 से शुरू होगा। वर्ष 19 और वर्ष 20 के बीच का गैप केवल 1 वर्ष का होगा।
खगोलीय असंभवता (Astronomical Impossibility):
आप पिछले लीप वर्ष के ठीक 1 साल बाद लीप वर्ष नहीं रख सकते। एक साल में केवल 11 दिनों का अंतर पैदा होता है, जो 30 दिन का महीना बनाने के लिए पर्याप्त नहीं है।
समाधान:
1-वर्ष या 4-वर्ष के गैप से बचने के लिए, 19 वर्षों को 3-वर्ष और 2-वर्ष के गैप के संयोजन (combination) में विभाजित किया जाना चाहिए।
3 + 3 + 2 + 3 + 3 + 3 + 2 = 19 वर्ष
यह 19-वर्षीय चक्र के भीतर लीप स्थिति बनाता है: [1, 4, 7, 9, 12, 15, 18]
7. "अतिरिक्त दिनों का बैंक अकाउंट" (Extra Days Bank Account)
यह समझने के लिए कि 19-वर्षीय चक्र स्वाभाविक रूप से बचे हुए अंतर को कैसे संभालता है, इसे एक "अतिरिक्त दिनों के बैंक अकाउंट" की तरह समझें।
- नियम 1 (कमाई/Earning): हर सामान्य सौर वर्ष में, हम लगभग 11 अतिरिक्त दिन कमाते हैं, जिन्हें हम बैंक में जमा करते हैं।
- नियम 2 (खर्च/Spending): जब भी बैंक का बैलेंस 30 दिन को पार करता है, तो हम उस वर्ष के लिए 1 अधिक मास (Leap Month) खरीदने के लिए उन 30 दिनों को निकाल लेते हैं।
आइए 2024 से बैंक बैलेंस को ट्रैक करें, जो 2034 के शिफ्ट (2-वर्ष के गैप) तक जाता है:
पहला चक्र (2026 लीप)
- 2024: 11 दिन जमा।
- 2025: 11 दिन जमा।
- 2026: 11 दिन जमा। (कुल: 33 दिन)
- हम 2026 के अधिक मास के लिए 30 दिन निकाल लेते हैं।
- बचा हुआ बैंक बैलेंस = 3 दिन।
चौथा चक्र (2034 में 2-वर्ष का गैप)
चूंकि हमारे पास पहले से ही 9 दिन बचे हुए थे (पिछले चक्रों से), इसलिए हमें बैलेंस 30 पार करने के लिए पूरे 3 साल का इंतजार नहीं करना पड़ेगा!
- 2033: +11 = 20 दिन
- 2034: +11 = 31 दिन! (केवल 2 वर्षों में 30 पार कर लिया)
- हम 2034 के अधिक मास के लिए 30 दिन निकाल लेते हैं।
- बचा हुआ बैंक बैलेंस = 1 दिन।
यदि हमने ज़िद करके 3 साल (2035) तक इंतजार किया होता, तो बैंक बैलेंस 31 + 11 = 42 दिन हो जाता। इसका मतलब है कि कैलेंडर ऋतुओं से 12 दिन पीछे हो जाता! इसके बजाय 2034 में लीप वर्ष रखने से, कैलेंडर पूरी तरह से सिंक (sync) में रहता है।
8. मीस (Meeus) इंजन का उपयोग क्यों करें?
हार्डकोडेड (hardcoded) तालिकाओं के बजाय शुद्ध गणित का उपयोग करके, यह कैलेंडर:
- सहस्राब्दियों (millennia) में चंद्र चरणों की बदलती तिथियों को स्वचालित रूप से संभालता है।
- मैन्युअल समायोजन (manual adjustments) के बिना भविष्य या अतीत में हजारों साल तक चंद्र तिथियों की सटीक भविष्यवाणी कर सकता है।
- खगोलीय UTC समय को स्थानीय भारतीय मानक समय (IST) सूर्योदय की घटनाओं पर मैप करके दृक् सिद्धांत के नियमों के प्रति सांस्कृतिक रूप से सटीक रहता है।