Skip to calendar
தமிழ் நாட்காட்டி ஏற்றுகிறது…

தமிழ் நாட்காட்டி  |  Tamil Calendar

Panchangam 2026 · Tiruchirappalli, Tamil Nadu · Lahiri Ayanamsa

GitHubView Source Code
Today / இன்று
☀ Sun Transit / ரவி பெயர்ச்சி
Tamil Month Start / மாத முதல் நாள்

ஞாயிறு
Sun
திங்கள்
Mon
செவ்வாய்
Tue
புதன்
Wed
வியாழன்
Thu
வெள்ளி
Fri
சனி
Sat
✦   ✦   ✦   ✦   ✦
தமிழ் காலண்டர் — இயக்க விளக்கம்
Tamil Calendar — How It Works
A bilingual guide explaining the astronomy, the 13-Ghatika rule, solar transit calculations, and how to run the calendar on your computer.

கணிதம், 13 கடிகை விதி, சூரிய பெயர்ச்சி கணக்கீடு மற்றும் இந்த நிரலை உங்கள் கணினியில் இயக்குவது எப்படி என்று விளக்கும் இரு மொழி வழிகாட்டி.
Python 3.10+pyswissephFlaskLahiri Ayanamsa13-Ghatika Rule
Section 01
What is a Tamil Calendar?
தமிழ் காலண்டர் என்றால் என்ன?
The Tamil calendar is a solar-sidereal calendar — unlike the Gregorian calendar which is purely solar, it tracks the Sun's movement through the 12 zodiac signs (Rasis) against the fixed stars (sidereal).

Each Tamil month begins when the Sun enters a new Rasi. The 12 Tamil months correspond to the 12 Rasis, starting with Chithirai (Mesha/Aries) and ending with Panguni (Meena/Pisces).
தமிழ் காலண்டர் ஒரு சூரிய-நட்சத்திர காலண்டர் ஆகும். கிரிகோரியன் காலண்டர் வெறும் சூரிய கணக்கை பயன்படுத்துகிறது. தமிழ் காலண்டர் நட்சத்திரங்களை அடிப்படையாக கொண்டு சூரியனின் இயக்கத்தை கணக்கிடுகிறது.

சூரியன் ஒரு புதிய ராசிக்கு நுழையும் நேரத்தில் தமிழ் மாதம் தொடங்குகிறது — சித்திரை (மேஷம்) முதல் பங்குனி (மீனம்) வரை.

The 12 Tamil Months (தமிழ் மாதங்கள்):

சித்திரை (Chithirai/Mesha) · வைகாசி (Vaikasi/Rishabha) · ஆனி (Aani/Mithuna) · ஆடி (Aadi/Kataka) · ஆவணி (Aavani/Simha) · புரட்டாசி (Purattasi/Kanya) · ஐப்பசி (Aippasi/Tula) · கார்த்திகை (Karthigai/Vrischika) · மார்கழி (Margazhi/Dhanus) · தை (Thai/Makara) · மாசி (Maasi/Kumbha) · பங்குனி (Panguni/Meena)

· · ✦ · ·
Section 02
Sidereal vs Tropical — Ayanamsa
நட்சத்திர ராசி vs சூரிய ராசி — அயனாம்சம்
Western astrology uses the Tropical zodiac (tied to seasons). Indian astrology uses the Sidereal zodiac (tied to actual star positions).

Due to Earth's axial precession, the two drift apart ~50.2 arcseconds/year. This difference is called the Ayanamsa.

We use Lahiri Ayanamsa — the Indian government's official standard since 1955. In 2025 ≈ 24.13°.
மேற்கத்திய ஜோதிடம் ட்ரோபிகல் ராசிச்சக்கரம் பயன்படுத்துகிறது. இந்திய ஜோதிடம் நட்சத்திர ராசிச்சக்கரம் பயன்படுத்துகிறது.

பூமியின் அச்சு சுழற்சியால் இவை ஆண்டுக்கு 50.2 வினாடிகள் வேறுபடுகின்றன. இந்த வேறுபாட்டை அயனாம்சம் என்கிறோம்.

நாம் லஹிரி அயனாம்சம் பயன்படுத்துகிறோம் — 1955 முதல் இந்திய அரசின் தரநிலை.
Formula — சூத்திரம்
Sidereal Longitude = Tropical Longitude − Ayanamsa
Integer division by 30° gives the Rasi (0=Mesha … 11=Meena).சூரியனின் ட்ரோபிகல் நிலையிலிருந்து அயனாம்சத்தை கழித்தால் நட்சத்திர நிலை கிடைக்கும். இதை 30-ஆல் வகுத்தால் ராசி கிடைக்கும்.
tamil_calendar.py — sun_longitude()
# Set Lahiri ayanamsa
swe.set_sid_mode(swe.SIDM_LAHIRI)

def sun_longitude(jd):
    flags  = swe.FLG_SWIEPH | swe.FLG_SIDEREAL
    result = swe.calc_ut(jd, swe.SUN, flags)
    return result[0][0]  # degrees 0–360 sidereal

rasi_index = int(sun_longitude(jd) / 30)
· · ✦ · ·
Section 03
Finding Solar Transit — Binary Search
சூரிய பெயர்ச்சி கண்டறிதல் — இரு-பிரிவு தேடல்
We find the exact moment the Sun crosses from one Rasi to the next using a binary search: take a ~4-day window, repeatedly halve the interval. After 50 iterations, accuracy is sub-second.
சூரியன் ஒரு ராசியிலிருந்து அடுத்த ராசிக்கு செல்லும் சரியான நேரத்தை இரு-பிரிவு தேடல் முறையில் கண்டறிகிறோம். 50 முறை பிரித்த பிறகு வினாடிக்கும் குறைவான துல்லியம் கிடைக்கிறது.
tamil_calendar.py — find_transit_jd()
def find_transit_jd(start_jd, end_jd, target_rasi):
    target_lon = target_rasi * 30.0
    lo, hi = start_jd, end_jd

    for _ in range(50):       # 50 iters → sub-second
        mid = (lo + hi) / 2.0
        lon = sun_longitude(mid)

        if target_rasi == 0:  # Pisces→Aries wrap
            if lon > 330: lo = mid
            else:         hi = mid
        else:
            if lon < target_lon: lo = mid
            else:                hi = mid

    return hi  # Julian Day of transit
⚠️
Special Case: Pisces → Aries (பங்குனி → சித்திரை)
The zodiac wraps from 360° back to 0°. We check lon > 330 (still in Pisces) and lon < 20 (entered Aries) to handle this boundary correctly.
ராசிச்சக்கரம் 360°-லிருந்து மீண்டும் 0°-க்கு திரும்புகிறது. பங்குனி முதல் சித்திரை வரை சிறப்பு கணக்கீடு தேவை.
· · ✦ · ·
Section 04
The 13-Ghatika Rule
13 கடிகை விதி
The most important traditional rule for determining which day a Tamil month starts.

1 Ghatika = 24 minutes.
13 Ghatikas = 312 minutes = 5 hrs 12 min after sunrise.

Transit within 312 min → that day is Month Day 1. Transit after 312 min → next day is Month Day 1.
தமிழ் மாதம் எந்த நாளில் தொடங்குகிறது என்பதை தீர்மானிக்கும் மிக முக்கியமான விதி.

1 கடிகை = 24 நிமிடங்கள்.
13 கடிகை = 312 நிமிடங்கள் சூரிய உதயத்திற்கு பிறகு.

312 நிமிடங்களுக்குள் பெயர்ச்சி → அந்த நாளே மாத முதல் நாள். இல்லையென்றால் அடுத்த நாள்.
13-Ghatika Decision Rule — 13 கடிகை தீர்மான விதி
Transit ≤ Sunrise + 312 min → Day 1 = Transit Date
Transit > Sunrise + 312 min → Day 1 = Next Day
Example: Chithirai 2025 transit at 3:07 AM on April 14. Sunrise = 6:05 AM. Transit before sunrise → within 312 min → April 14 = Chithirai Day 1 ✓எடுத்துக்காட்டு: சித்திரை 2025 — ஏப்ரல் 14 அதிகாலை 3:07 மணிக்கு பெயர்ச்சி. சூரிய உதயம் 6:05 மணி → ஏப்ரல் 14 = சித்திரை 1 ✓
tamil_calendar.py — apply_13_ghatika_rule()
def apply_13_ghatika_rule(transit_ist, sunrise_ist):
    sr    = sunrise_ist.replace(tzinfo=None)
    tr    = transit_ist.replace(tzinfo=None)
    limit = sr + timedelta(minutes=312)  # 13 × 24

    if tr <= limit:
        return tr.date()                    # same day
    else:
        return tr.date() + timedelta(days=1) # next day
· · ✦ · ·
Section 05
Sunrise Calculation
சூரிய உதய கணக்கீடு
Precise sunrise is critical — a 2-minute error can shift the Tamil month start by an entire day due to the 13-Ghatika rule.
சரியான சூரிய உதய நேரம் மிக முக்கியம் — 2 நிமிட பிழை கூட தமிழ் மாத தொடக்க நாளை மாற்றி விடலாம்.
tamil_calendar.py — get_sunrise_sunset()
# rise_trans(tjdut, body, rsmi, geopos, atpress, attemp)
geopos = (lon, lat, alt)  # lon first!

res, tret = swe.rise_trans(
    jd_start, swe.SUN,
    swe.CALC_RISE,
    geopos, 1013.25, 15.0
)
sunrise_jd = tret[0]
🌅
Why Swiss Ephemeris over other libraries?
Swiss Ephemeris gives sub-second sunrise accuracy. The astral Python library introduces ±1–2 minute errors — unacceptable for Panchangam calculations where precision determines which day a Tamil month starts.
Swiss Ephemeris வினாடிக்கும் குறைவான துல்லியத்தை தருகிறது. Astral Python நூலகம் ±1–2 நிமிட பிழையை உருவாக்கும் — இது பஞ்சாங்க கணக்கீட்டிற்கு ஏற்றதல்ல.
· · ✦ · ·
Section 06
Tamil Year — 60-Year Cycle
தமிழ் வருடம் — 60 வருட சுழற்சி
Tamil years follow a 60-year cycle (Sashti Abdha Poorthi). The new year starts when the Sun enters Mesha (Chithirai), usually around April 14th.

Anchor: April 2025 = Visvavasu (விஸ்வாவசு), index 38 (0-based).
தமிழ் வருடங்கள் 60 ஆண்டு சுழற்சியை பின்பற்றுகின்றன. சூரியன் மேஷ ராசிக்கு நுழையும் போது புத்தாண்டு தொடங்குகிறது.

நங்கூரம்: ஏப்ரல் 2025 = விஸ்வாவசு, குறியீடு 38.
Year Calculation — வருட கணக்கீடு
index = (38 + gregorian_year − 2025) % 60
2024 → 37 → குரோதி (Krodhi) ✓   2025 → 38 → விஸ்வாவசு (Visvavasu) ✓   2026 → 39 → பராபவ (Parabha) ✓
· · ✦ · ·
Section 07
Project File Structure
திட்ட கோப்பு அமைப்பு
📁 tamil-calendar/
  ├── 📄 tamil_calendar.py← Core astronomy (transits, sunrise, 13-ghatika)
  ├── 📄 index.py← Flask API server (Vercel deployment)
  └── 📄 index.html← Frontend UI (GitHub Pages)
tamil_calendar.py — Pure astronomy. No web framework. All calculation functions: sun longitude, transit finder, sunrise/sunset, 13-ghatika rule, year cycle.

index.py — Flask/Vercel API. Two endpoints: /api/calendar (monthly data) and /api/today (today's Tamil date).

index.html — Single-file frontend on GitHub Pages. Fetches the API and renders the bilingual calendar.
tamil_calendar.py — தூய கோளரிதல் கணக்கீடு. சூரிய நிலை, பெயர்ச்சி, சூரிய உதயம், 13 கடிகை விதி, வருட சுழற்சி.

index.py — Vercel-ல் Flask API. /api/calendar மற்றும் /api/today.

index.html — GitHub Pages-ல் ஒற்றை கோப்பு முன்னகட்டு.
· · ✦ · ·
Section 08
How to Run Locally
உள்ளூரில் எவ்வாறு இயக்குவது
1
Install Python
Python நிறுவுக
Download Python 3.10+ from python.org. On Windows check "Add Python to PATH".
python.org-லிருந்து Python 3.10+ பதிவிறக்கவும். Windows-ல் "Add Python to PATH" தேர்ந்தெடுக்கவும்.
$ python3 --version
2
Install Libraries
நூலகங்களை நிறுவுக
Open terminal and install required packages:
Terminal திறந்து தேவையான தொகுப்புகளை நிறுவுக:
$ pip install pyswisseph flask flask-cors
3
Run the Server
சேவையகத்தை தொடங்கவும்
Navigate to the project folder and run:
திட்ட கோப்புறைக்கு சென்று இயக்கவும்:
$ cd path/to/tamil-calendar $ python3 index.py * Running on http://127.0.0.1:5050
4
Open in Browser
உலாவியில் திறக்கவும்
Open any browser and visit:
எந்த உலாவியிலும் திறந்து செல்லவும்:
http://localhost:5050
📍
Default Location — Why Tiruchirappalli?
Coordinates 10°56′N, 78°25′E are the approximate geographic centre of Tamil Nadu, giving a balanced average sunrise/sunset for all districts across the state.
இயல்பு ஆயத்தொலைவுகள் தமிழ்நாட்டின் தோராய புவியியல் மைய புள்ளி — மாநிலம் முழுவதும் சராசரி சூரிய உதய/அஸ்தமன நேரம் கொடுக்கிறது.
# Other cities — Google Maps → right-click → copy coordinates DEFAULT_LAT = 13.0827 DEFAULT_LON = 80.2707 # Chennai DEFAULT_LAT = 9.9252 DEFAULT_LON = 78.1198 # Madurai DEFAULT_LAT = 11.0168 DEFAULT_LON = 76.9558 # Coimbatore DEFAULT_LAT = 8.0883 DEFAULT_LON = 77.5385 # Kanyakumari
· · ✦ · ·
Section 09
Quick Reference
விரைவு குறிப்பு

Key Constants (முக்கிய மாறிலிகள்)

1 Ghatika (கடிகை) = 24 minutes
13 Ghatikas = 312 minutes = 5 hrs 12 min
Lahiri Ayanamsa (2025) ≈ 24.13°
Sun travels ≈ 1° per day (30° per month)
Tamil month duration ≈ 29–32 days
60-year cycle anchor: 2025 = விஸ்வாவசு (index 38)