This is the
summary of calculation of the vaisnava events in the GCAL program. Algorithms
are described "as they are" implemented in program and are not for
definition of particular event in vaisnava calendar.
Calendar
Calculation
Calendar
calculation is always performed on given range of dates <date1, dateN>. Calculation is
done in phases. For one phase is performed specific calculation for whole range
of dates.
Phases:
- calculation of tithi, paksa, naksatra, yoga
- calculation of ekadasi parana (breaking fast)
- calculation of appearance days
- calculation of depending appearance days
- calculation of events depending on sankrantis
- calculation of exact time for ksaya tithis
- correction of calculated times according DST
This
calculation is described in document "Astronomical Calculations in
GCAL". Preformed for each and every day in range.
Process of
this calculation is described in document "Astronomical Calculations in
GCAL". Masa is calculated only for pratipat tithi (two times in month).
All next days up to Purnima or Amavasya Tithi have the same masa. If pratipat
tithi is ksaya, then masa is calculated for dvitiya tithi. If pratipat tithi is
vriddhi, then masa is calculated for first day of tithi.
This tests
are performed only for days when today's tithi is Dvadasi and yesterday's tithi
is less than Dvadasi (Ekadasi or Dasami).
test1.3.1
if today is GauraDvadasi and naksatra_test is successful
then this day1 is Naksatra Mahadvadasi
otherwise perform next test
test
1.3.2
if today is Dvadasi and tomorrow is Dvadasi and yesterday is Suddha Ekadasi
then this day1 is VYANJULI MAHADVADASI
otherwise perform next test
test
1.3.3
if today is Dvadasi and next pratipat or amavasya tithi is vriddhi (last 2 days)
then this day1 is PAKSAVARDHINI MAHADVADASI
otherwise perform next test
test1.3.4
if today is Dvadasi and yesterday on arunodaya is less than ekadasi
then today is Dvadasi suitable for Fasting
Naksatra
test:
Today |
Tomorrow |
Today Mahadvadasi |
||||
Sunrise |
Sunset |
Sunrise |
||||
Naksatra |
Tithi |
Naksatra |
Tithi |
Naksatra |
Tithi |
|
Sravana |
Gaura Dvadasi |
- |
- |
Sravana |
- |
Vijaya |
Punarvasu |
Gaura Dvadasi |
- |
Gaura Dvadasi |
Punarvasu |
- |
Jaya |
Rohini |
Gaura Dvadasi |
- |
Gaura Dvadasi |
Rohini |
- |
Jayanti |
Pusyami |
Gaura Dvadasi |
- |
Gaura Dvadasi |
Pusyami |
- |
Papa
nasini |
Table 1
sumarizes decision logic for Dvadasi day.
Yesterday |
Yesterday |
Today |
Tomorrow |
Today Fast |
- |
less than dvadasi |
gaura dvadasi |
- |
if naksatra_test is positive, then result is
related Mahadvadasi |
ekadasi |
ekadasi |
dvadasi |
dvadasi |
today is Vyanjuli Mahadvadasi |
- |
less than dvadasi |
dvadasi |
- |
here performed tests for next full or new
moon: if vriddha then Paksavardhini Mahadvadasi |
less than ekadasi |
less than dvadasi |
dvadasi |
- |
Today Fast for Ekadasi |
This
calculation is performed only for Ekadasi Tithi days.
That means
we are testing day1, which is Ekadasi Tithi.
Table 2
shows decision table for determining type of Ekadasi.
Yesterday |
Yesterday |
Today |
Today |
Tomorrow |
Today Fast |
- |
- |
dasami |
ekadasi |
- |
not suitable for fast |
ekadasi |
ekadasi |
ekadasi |
ekadasi |
trayodasi |
Unmilani Trisprsa Mahadvadasi |
ekadasi |
ekadasi |
ekadasi |
ekadasi |
dvadasi |
Unmilani Mahadvadasi |
not ekadasi |
- |
ekadasi |
ekadasi |
trayodasi |
Trisprsa Mahadvadasi |
- |
- |
ekadasi |
ekadasi |
ekadasi |
not suitable for fast (tomorrow is Unmilani) |
- |
- |
ekadasi |
ekadasi |
some mahadvadasi |
not suitable for fast |
not ekadasi |
- |
ekadasi |
ekadasi |
dvadasi |
Suddha Ekadasi |
There are 7
types of Ekadasi day and related parana time.
1. Normal -
fasting day has ekadasi at sunrise and dvadasi at next sunrise.
2. Viddha -
fasting day has dvadasi at sunrise and trayodasi at next sunrise, and it is not
a naksatra mahadvadasi
3. Unmilani
- fasting day and previous day has ekadasi at sunrise.
4. Vyanjuli
- fasting day has dvadasi at both sunrises, and it is not a naksatra
mahadvadasi.
5. Trisprsa
- fasting day has ekadasi at sunrise and trayodasi at next sunrise.
6.
Jayanti/Vijaya - fasting day has gaura dvadasi and Rohini/Sravana naksatra at
sunrise and same naksatra at next sunrise.
7.
Jaya/Papanasini - fasting day has gaura dvadasi and Punarvasu/Pusya naksatra at
sunrise and same naksatra at next sunrise.
Case 1:
Normal
If dvadasi
tithi ends before 1/3 of daylight
then PARANA END = TIME OF END OF TITHI
but if
dvadasi TITHI ends after 1/3 of daylight
then PARANA END = TIME OF 1/3 OF DAYLIGHT
if 1/4 of
dvadasi tithi is before sunrise
then PARANA BEGIN is sunrise time
but if 1/4
of dvadasi tithi is after sunrise
then PARANA BEGIN is time of 1/4 of dvadasi
tithi
if PARANA
BEGIN is before PARANA END
then we will write "BREAK FAST FROM xx
TO yy
but if
PARANA BEGIN is after PARANA END
then we will write "BREAK FAST AFTER
xx"
Case 2:
Viddha
If
trayodasi tithi ends before 1/3 of daylight
then PARANA END = TIME OF END OF TITHI
but if
trayodasi TITHI ends after 1/3 of daylight
then PARANA END = TIME OF 1/3 OF DAYLIGHT
PARANA
BEGIN is sunrise time
we will write
"BREAK FAST FROM xx TO yy
Case 3:
Unmilani
PARANA END
is end of Dvadasi tithi or 1/3rd of daylight hours, whichever is
earlier
PARANA
BEGIN is sunrise
We write
"BREAK FAST FROM xx TO yy
Case 4:
Vyanjuli
PARANA
BEGIN = Sunrise
PARANA END
is end of Dvadasi tithi or 1/3 of daylight hours, whichever is earlier
we will
write "BREAK FAST FROM xx TO yy
Case 5:
Trisprsa
PARANA
BEGIN = Sunrise
PARANA END
= 1/3 of daylight hours
we will
write "BREAK FAST FROM xx TO yy
Case 6:
Jayanti/Vijaya
If the dvadasi
tithi is present at sunrise and the naksatra ends before the dvadasi tithi and
before 1/3 of daylight hours, then PARANA BEGIN = end of naksatra and PARANA
END = end of dvadasi tithi or 1/3 of daylight hours, whichever is earlier.
then we will write "BREAK FAST FROM xx
TO yy"
If the
dvadasi tithi is present at sunrise and the naksatra ends before the dvadasi
tithi but after 1/3 of daylight hours then PARANA BEGIN = end of naksatra and
PARANA END = end of dvadasi tithi.
then we will write "BREAK FAST FROM xx
TO yy"
If the
dvadasi tithi is present at sunrise and the naksatra ends after the dvadasi
tithi then PARANA BEGIN = sunrise and PARANA END = end of dvadasi tithi or 1/3
of daylight hours, whichever is earlier.
then we will write "BREAK FAST FROM xx
TO yy"
If the
dvadasi tithi is not present at sunrise, then PARANA BEGIN = sunrise and PARANA
END = end of naksatra or 1/3 of daylight hours, whichever is earlier.
then we will write "BREAK FAST FROM xx
TO yy"
Case 7:
Jaya/Papanasini
If the
dvadasi tithi is present at sunrise and the naksatra ends before the dvadasi
tithi and before 1/3 of daylight hours, then PARANA BEGIN = end of naksatra and
PARANA END = end of dvadasi tithi or 1/3 of daylight hours, whichever is
earlier.
then we will write "BREAK FAST FROM xx
TO yy"
If the
dvadasi tithi is present at sunrise and the naksatra ends before the dvadasi
tithi but after 1/3 of daylight hours then PARANA BEGIN = end of naksatra and
PARANA END = end of dvadasi tithi.
then we will write "BREAK FAST FROM xx
TO yy"
If the
dvadasi tithi is present at sunrise and the naksatra ends after the dvadasi
tithi then PARANA BEGIN = sunrise and PARANA END = end of dvadasi tithi or 1/3
of daylight hours, whichever is earlier.
then we will write "BREAK FAST FROM xx
TO yy"
If the
dvadasi tithi is not present at sunrise and the naksatra ends before 1/3 of the
daylight hours, then PARANA BEGIN = end of naksatra and PARANA END = 1/3 of
daylight hours.
then we will write "BREAK FAST FROM xx
TO yy"
If the
dvadasi tithi is not present at sunrise and the naksatra ends after 1/3 of the
daylight hours, then PARANA BEGIN = end of naksatra.
then we will write "BREAK FAST AFTER
xx"
Tests for
build-in festival calculations:
test
1.5.1 – Govardhana Puja
if day is
in damodara masa, gaura paksa, then perform following test 1.5.1
if today and yesterday is gaura pratipat
then do nothing (Govardhana Puja was resolved when yesterday was tested)
if today and tomorrow is gaura pratipat
then if moon rises between todays sunrise and tomorrow's sunrise
then today is Govardhana Puja
otherwise Govardhana Puja is tomorrow
if just today is gaura pratipat
then today is Govardhana Puja
if yesterday is Amavasya and today is Gaura Dvitiya
then today is Govardhana Puja
test 1.5.2 – Sri Krsna Janmasthami
This test
if performed when masa is Hrsikesa. First we are testing present tithi.
Yesterday |
Today |
Tomorrow |
Decision |
saptami |
astami |
navami |
today is
Janmasthami |
saptami |
navami |
any |
today is
Janmasthami |
astami |
astami |
navami |
need to
perform test 1.5.2.1 |
saptami |
astami |
astami |
need to
perform test 1.5.2.1 |
Last two
lines seems to be the same case, but if navami or saptami is ksaya, then both
of these lines are needed. If test in 3rd line is succesfull, then
last line is skipped, so no double testing is performed.
test
1.5.2.1
Day1 |
Day2 |
Decision |
not
rohini |
not
rohini |
need to
perfrom test 1.5.2.2 |
rohini |
not
rohini |
day1 is
janmasthami |
not rohini |
rohini |
day2 is
janmasthami |
rohini |
rohini |
need to
perform test 1.5.2.3 |
test
1.5.2.2
Day 1 |
Day 2 |
Decision |
monday |
tuesday |
day1 is
janmasthami |
tuesday |
wednesday |
day2 is
janmasthami |
wednesday |
thursday |
day1 is
janmasthami |
thursday |
friday |
day1 is janmasthami |
friday |
saturday |
day1 is
janmasthami |
saturday |
sunday |
day1 is
janmasthami |
sunday |
monday |
day2 is
janmasthami |
test
1.5.2.3
Day1 |
Day2 |
Decision |
not
rohini |
not
rohini |
need to
perfrom test 1.5.2.2 |
rohini |
not rohini |
day1 is
janmasthami |
not
rohini |
rohini |
day2 is
janmasthami |
rohini |
rohini |
need to
perform test 1.5.2.2 |
This is
performed in Vamana Masa.
Yesterday |
Today |
Tomorrow |
Decision |
less than
Dvitiya |
Gaura
Dvitiya |
any |
today is
Ratha Yatra |
Gaura
Pratipat |
Gaura
Tritiya |
any |
today is
Ratha Yatra |
Gaura
Dvitya |
Gaura
Dvitiya |
any |
yesterday
is Ratha Yatra |
This is
performed when yesterday is in Govinda Masa.
Yesterday |
Today |
Decision |
less than
Purnima (Govinda Masa) |
Purnima
(Govinda Masa) |
today is
Gaura Purnima |
less than
Purnima (Govinda Masa) |
Krsna
Pratipat (Visnu Masa) |
today is
Gaura Purnima |
Purnima
(Govinda Masa) |
Purnima
(Govinda Masa) |
yesterday
is Gaura Purnima |
test
1.5.5 – Rama Navami
This test
is performed in Visnu Masa, Gaura Paksa.
Yesterday |
Today |
Tomorrow |
Decision |
Astami |
Navami |
Dasami |
today is
Rama Navami |
Astami |
Navami |
Navami |
today is
Rama Navami |
Astami |
Dasami |
Dasami |
today is
Rama Navami |
Astami |
Dasami |
Not
suitable for Ekadasi fasting |
today is
Rama Navami |
Astami |
Dasami |
Suitable
Ekadasi for fasting |
yesterday
is Rama Navami |
test
1.5.5 – Test for other festivals
There is a
list of festivals and events and for each and every event is performed the same
test. For example we have event which occurs on tithi, before was tithi-1 and
after is tithi+1.
Yesterday |
Today |
Tomorrow |
Decision |
tithi-1
or less |
tithi |
tithi+1 |
event is
celebrated today |
tithi-1 |
tithi+1 |
any |
event is
celebrated today |
any |
tithi |
tithi |
event is
celebrated today |
Event |
Offset to |
Event |
Srila Prabhupada Appearance |
1 day after |
Janmasthami |
Gundica Marjana |
1 day before |
Ratha Yatra |
Hera Pancami |
4 days after |
Ratha Yatra |
Return Ratha |
8 days after |
Ratha Yatra |
Jagannatha Misra festival |
1 day after |
Gaura Purnima |
If (today is Ekadasi fasting day) and (need to fast till noon for some event)
then write ' Today: Fast till noon for ... Feast is tomorrow.'
If (yesterday is Ekadasi fasting day) and (today is need for fast till noon)
then write ' Today: ...event.... (Fasting was done yesterday). '
This resolution procedure will be performed for each festival separately with appropriate text. If there are two festivals in one day (like sometimes Nityananda and Varaha after Trisprisa Mahadvadasi, or Bhaktivinoda and Vamana after Trisprisa Mahadvadasi), for each festival is writen separate note.
Sankranti
is calculated for given day and note about sankranti is placed to parcticular
day according one of four systems:
midnight –
midnight
sunrise –
sunrise
noon – noon
sunset –
sunset
Default
setting is "noon to noon".
1) for given day we calculate particular value (of noon or sunset or etc..)
2) if sankranti occurs before calculated value, then note about sankranti will be at this day
3) if sankranti occurs after calculated value, then note about sankranti will be next day
This is a
list of events which depends on sankranti day.
Event |
Offset |
Sankranti |
Ganga
Sagara Mela |
on day of |
Makara
Sankranti |
Tulasi
Jala Dan begins |
on day of |
Mesha
Sankranti |
Tulasi
Jala Dan ends |
a day
before |
Vrsabha
Sankranti |
If yesterday is the same tithi as today
then today is marked as second day of vriddhi
If today is more than next tithi of yesterday (one tithi is missing)
then ksaya times are calculated
Finaly are
corrected time values calculated. This is valid for these values:
1) Time of
Ekadasi Parana
2) Sunrise,
Sunset, Noon, Arunodaya
3)
Moonrise, Moonset
Date |
Changes |
May 8,
2008 |
Initial
release |
May 28,
2008 |
Modified
"Calculation of Dvadasi day",
"Ekadasi Parana calculation",
"Sankranti calculation", "Ratha yatra calculation", "Janmasthami", "Gaura
Purnima", "Resolution of fasting
days", |
June 5,
2008 |
Corrected
"Pusya" to "Pusyami" |