BengaliCalendarNow logo

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.

Primary source: Benimadhav Shil Ful Panjika. We rely on it for Ekadashi, Amavasya, Purnima, festivals, and special notes. We do not compute these observances from scratch.

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

Sourced from Benimadhav Shil Ful Panjika

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. Official observance comes from the Panjika.

  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 Panjika and correct confirmed issues. Important fixes go into a simple change log.

Caveats

Contact

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