html Meta Calendar Methodology, Tithi Calculation and Sources icons Responsive + Site Styles

ক্যালেন্ডার পদ্ধতি ও উৎস | Methodology and Sources

Methodology and Calculations

This page explains how Bengali Calendar Now builds the monthly grid and how we source observance dates. When there is any conflict, we follow our primary source.

Source status: ১৪৩৩ সালের রাশিফল, ব্রতকথা, দুর্গাপূজা, একাদশী, পূর্ণিমা, অমাবস্যা, পর্বদিন, গ্রহণ ও শুভদিনের তথ্য ব্যবহারকারীর সরবরাহ করা বেণীমাধব শীল ফুল পঞ্জিকা PDF থেকে যাচাই ও সম্পাদকীয়ভাবে সাজানো হয়েছে।

Scope

Time zone and location

IST shift in code:

date.setTime(date.getTime() + (date.getTimezoneOffset() + 330) * 60 * 1000)

What is sourced and what is computed

1433 data taken from the supplied Panjika PDF sections

Computed in the app

Formulas and constants

Gregorian to Julian Day

Function: ModernDate_to_Julianeday(y, m, d)

Tithi label per date (approximate)

This produces a tithi name inside each calendar cell. It is for context only. Final observance dates will be confirmed from the Panjika PDF when provided.

  1. Compute daysSinceNewMoon = JD − 2451549.5. If negative, add whole synodic months until positive.
  2. Set tithiLength = 29.530588853 / 30.
  3. Compute tithiNumber = floor(daysSinceNewMoon / tithiLength) + 1, then wrap to 1..30 with ((tithiNumber − 1) % 30) + 1.
  4. Map 1..15 to Shukla tithis and 16..30 to Krishna tithis.

Limits

Bengali date model

Used to print the Bengali day number and the two Bengali month names shown in the header.

Constants

index:  1      2       3        4        5        6
value:  30.93, 62.63,  94.00, 125.48, 156.49, 186.92

index:  7       8        9        10       11       12
value: 216.81, 246.32, 275.64, 305.09, 334.91, 365.26

Steps

  1. Convert the Gregorian date to JD: nJD.
  2. jddiff = nJD − startjd.
  3. lastYearCount = floor(jddiff / 365.2587564814815).
  4. mesh = startjd + lastYearCount * 365.2587564814815.
  5. Find month i such that nJD is in [ps, floor(ns) + 1.75], where ps = mesh + mas_len[i] and ns = mesh + mas_len[i+1].
  6. Bengali day = floor(nJD − ps) + 1, month = i + 1, year = lastYearCount + 1.

The +1.75 day tolerance helps align month edges with common practice.

Month layout rules

Holidays and observances

Sourcing policy

Corrections

If you find an error, contact us with the date, location, and the relevant Panjika reference if possible. We check the report against the supplied source material and correct confirmed issues. Important fixes go into a simple change log.

Caveats

Contact

For questions or corrections, email us at Coinsmudra@gmail.com.