GCAL / ISKCON Ekādaśī — доказательный аудит 8 августа 2026
1. Главный вывод
По проверенному исходному коду современного GCAL:
Daśamī-viddhā Ekādaśī не назначается днём вайшнавского поста.
Ключевой алгоритм:
sunrise = Ekādaśī
+
aruṇodaya < Ekādaśī
→ FAST_NULL
В данном контексте aruṇodaya < Ekādaśī означает предыдущую tithi, то есть Daśamī.
Это непосредственно реализовано в EkadasiCalc() файла:
GCAL.Base/VAISNAVADAY.cs
Источник:
https://github.com/gopa810/GCAL-Net-Des ... NAVADAY.cs
2. Основания аудита
1. проверенные санскритские цитаты HBV 12.202 и 12.205;
2. отдельные санскритские свидетельства о критерии aruṇodaya;
3. исходный код GCAL;
4. официальная/авторская документация GCAL.
3. Проверенный текст HBV 12.202
В качестве HBV 12.202 приводится:
ekādaśīm upavased dvādaśīm athavā punaḥ
vimiśrāṁ vāpi kurvīta na daśamyā yutāṁ kvacit
Смысл ключевых слов:
· ekādaśīm upavaset — поститься на Ekādaśī;
· dvādaśīm athavā punaḥ — также/в соответствующем случае на Dvādaśī;
· vimiśrāṁ — смешанную/соединённую;
· na daśamyā yutāṁ kvacit — никогда не [соблюдать] соединённую с Daśamī.
Этот стих цитируется как HBV 12.202, с источником Saura-dharmottara.
Источник публикации санскрита:
https://www.dandavats.com/?p=1853
Для данного аудита важна не формулировка английского перевода, а сам санскрит:
na daśamyā yutāṁ kvacit
→ запрет Daśamī-yuta Ekādaśī.
4. Проверенный текст HBV 12.205
Приводится:
na upoṣyā daśamī-viddhā sadaivaikādaśī tithiḥ
samupoṣya naro jahyāt puṇyaṁ varṣa-śatodbhavam
Ключевая конструкция:
na upoṣyā daśamī-viddhā
→ Daśamī-viddhā Ekādaśī не должна соблюдаться постом.
Это значительно сильнее, чем вывод из перевода: сам санскрит содержит термин daśamī-viddhā.
Источник публикации:
https://nimaipandit.ning.com/profiles/b ... Redirect=1
5. Что именно доказывают HBV 12.202 и 12.205
Они доказывают принцип:
Ekādaśī, соединённую/поражённую Daśamī, нельзя выбирать как день поста.
Они сами по себе ещё не доказывают, что технический критерий этого соединения должен вычисляться именно как:
Daśamī at aruṇodaya.
Для этого требуется отдельное текстологическое свидетельство.
Это различие принципиально важно.
6. Свидетельство о aruṇodaya
В санскритском календарном материале, приведённом в каталоге санскритских рукописей, имеется формулировка:
aruṇodayavelāyāṁ daśamī miśritā yadi
tasmin dine vrataṁ naiva śvaḥ kuryād upavāsakam
И далее приводится более подробное правило:
haridinasya sūryodayāt pūrvam aruṇodayāt paraṁ catuṣṭayaghaṭikāsu kalāmātraṁ daśamī dṛśyate yadi tatra nopavāsaḥ
Критический смысл:
если Daśamī присутствует в aruṇodaya/соответствующем периоде перед sunrise, в этот день пост не выполняется.
Источник:
https://www.wisdomlib.org/history/compi ... 38535.html
Текстологическая оговорка
Этот фрагмент не следует выдавать за буквальную шлоку HBV 12.318.
В данном аудите он используется как отдельное санскритское свидетельство календарного правила, а не как переатрибуированный текст HBV.
7. Почему это существенно для GCAL
GCAL использует именно временной критерий aruṇodaya.
В GCAstroData.cs:
arunodaya = sunrise - 96 minutes
Затем для aruṇodaya вычисляется лунная долгота и соответствующая tithi.
Источник:
https://github.com/gopa810/GCAL-Net-Des ... troData.cs
Таким образом, GCAL не использует простое гражданское правило:
«Если Daśamī и Ekādaśī встретились в течение одного календарного дня».
Он использует астрономически определённый контрольный момент.
8. Основной тест Daśamī-viddhā в GCAL
EkadasiCalc() сначала проверяет:
sunrise.Tithi == Ekādaśī
Затем:
sunArunodaya.Tithi < Ekādaśī
и в таком случае:
FAST_NULL
Источник:
https://github.com/gopa810/GCAL-Net-Des ... NAVADAY.cs
В коде присутствует комментарий:
if TAT < 11 then NOT_EKADASI
При sunrise = 11 (Ekādaśī) непосредственная предыдущая tithi — 10 (Daśamī).
Следовательно:
aruṇodaya = Daśamī
sunrise = Ekādaśī
→ FAST_NULL
9. Это не ошибка из-за условия < Ekādaśī
Код проверяет не буквально:
arunodaya == Daśamī
а:
arunodaya < Ekādaśī
Но внешний блок уже требует:
sunrise == Ekādaśī
В последовательности tithi непосредственной предшественницей Ekādaśī является Daśamī.
Поэтому комбинация означает именно:
Daśamī at aruṇodaya
+
Ekādaśī at sunrise
Это не расширяет фактическое условие.
10. Важнейшее доказательство против гипотезы «GCAL показывает смешанную Ekādaśī»
Если гипотеза такова:
«Текущий ISKCON/GCAL календарь назначает пост на день, где Ekādaśī есть на sunrise, но Daśamī ещё присутствует в aruṇodaya»
то исходный код даёт прямой отрицательный ответ.
Для такой комбинации:
sunrise = Ekādaśī
arunodaya = Daśamī
поле fasting status становится:
FAST_NULL
а не:
FAST_EKADASI
Следовательно, это не день Ekādaśī-vrata в алгоритме GCAL.
11. Отображение Ekādaśī в календаре
GCFestivalEkadasi.IsFestivalDay() требует не просто наличие Ekādaśī-tithi.
Критическим является также:
nFastID == FAST_EKADASI
Источник:
https://github.com/gopa810/GCAL-Net-Des ... Ekadasi.cs
Поэтому:
tithi = Ekādaśī
не равно автоматически:
calendar event = fasting Ekādaśī
Сначала проходит вайшнавский алгоритм выбора fasting day.
12. Перенос на Dvādaśī
После исключения viddha-day GCAL анализирует Dvādaśī через MahadvadasiCalc().
При соответствующих условиях Dvādaśī получает:
FAST_EKADASI
а предыдущий день остаётся без fasting status.
Источник:
https://github.com/gopa810/GCAL-Net-Des ... NAVADAY.cs
Это соответствует общему принципу, отражённому в HBV 12.202:
ekādaśīm ... dvādaśīm athavā
Но конкретное распределение всех Mahādvādaśī требует отдельной проверки по соответствующим текстам.
13. Unmīlanī
GCAL распознаёт ситуацию, когда Ekādaśī сохраняется на последовательных sunrise, и назначает специальный Mahādvādaśī status.
Код:
https://github.com/gopa810/GCAL-Net-Des ... NAVADAY.cs
Документация:
https://gopal.home.sk/gcal/docs/GCalVai ... lation.pdf
Особенно важно, что код проверяет и предыдущий aruṇodaya, не позволяя обычной viddha-Ekādaśī автоматически стать чистой Unmīlanī.
Оценка: соответствует принятой гаудия-вайшнавской алгоритмизации.
14. Vyañjulī
GCAL использует последовательность:
previous sunrise = Ekādaśī
previous arunodaya = Ekādaśī
current sunrise = Dvādaśī
next sunrise = Dvādaśī
→ EV_VYANJULI
Источник:
https://github.com/gopa810/GCAL-Net-Des ... NAVADAY.cs
Документация:
https://gopal.home.sk/gcal/docs/GCalVai ... lation.pdf
Оценка: соответствует принятой алгоритмической форме Vyañjulī.
15. Trisparśā
GCAL распознаёт последовательность:
current sunrise = Ekādaśī
next sunrise = Trayodaśī
и назначает:
EV_TRISPRSA
FAST_EKADASI
Отдельно существует вариант:
previous Ekādaśī
current Ekādaśī
next Trayodaśī
→ UNMILANI_TRISPRSA.
Источник:
https://github.com/gopa810/GCAL-Net-Des ... NAVADAY.cs
Ключевой результат для нашего вопроса:
Daśamī-viddhā сначала исключается из fasting status; она не должна превращаться в специальную Mahādvādaśī просто из-за последующей последовательности tithi.
16. Pakṣavardhinī
NextNewFullIsVriddhi() ищет повтор одной и той же Amāvasyā/Pūrṇimā на последовательных sunrise.
Источник:
https://github.com/gopa810/GCAL-Net-Des ... NAVADAY.cs
После выполнения условия Dvādaśī получает:
EV_PAKSAVARDHINI
FAST_EKADASI
Документация:
https://gopal.home.sk/gcal/docs/GCalVai ... lation.pdf
Оценка: алгоритмически соответствует принятому правилу Vṛddhi/Pakṣavardhinī.
17. Nakṣatra Mahādvādaśī
IsMhd58() проверяет:
· Gaura pakṣa;
· Nakṣatra текущего sunrise;
· Nakṣatra следующего sunrise.
Классификация:
Punarvasu → Jaya
Rohiṇī → Jayantī
Puṣya → Pāpanāśinī
Śravaṇa → Vijayā
Источник:
https://github.com/gopa810/GCAL-Net-Des ... NAVADAY.cs
Документация:
https://gopal.home.sk/gcal/docs/GCalVai ... lation.pdf
Оценка: соответствует алгоритмической спецификации GCAL.
18. Приоритеты Mahādvādaśī
В MahadvadasiCalc() специальные Mahādvādaśī проверяются до последующих общих случаев.
Это предотвращает механическое присвоение Vyañjulī/Pakṣavardhinī при наличии более специфического Mahādvādaśī-класса.
Источник:
https://github.com/gopa810/GCAL-Net-Des ... NAVADAY.cs
Оценка: логика приоритетов согласована с опубликованной GCAL specification.
19. Pāraṇa
CalculateEParana() учитывает:
· sunrise;
· sunset;
· daylight;
· 1/3 daylight;
· конец Dvādaśī;
· начало/конец tithi;
· первую четверть Dvādaśī;
· специальные Mahādvādaśī cases.
Источник:
https://github.com/gopa810/GCAL-Net-Des ... NAVADAY.cs
Документация:
https://gopal.home.sk/gcal/docs/GCalVai ... lation.pdf
Текстологическая оговорка
Нельзя утверждать, что каждая формула CalculateEParana() является буквальной программной транскрипцией одной конкретной шлоки HBV.
Это инженерная формализация календарной традиции.
Поэтому в финальной оценке:
pāraṇa algorithm = подтверждён как алгоритм GCAL; полное буквальное тождество каждой формулы HBV = не доказано.
20. Hari-vāsara
GCAL вычисляет первую четверть Dvādaśī и не разрешает обычный pāraṇa до окончания соответствующего запрещённого периода.
Источник:
https://github.com/gopa810/GCAL-Net-Des ... NAVADAY.cs
Это соответствует традиционному принципу Hari-vāsara.
Но, как и для pāraṇa в целом, для строгого текстологического доказательства следует сопоставлять конкретные шлоки и комментарий, а не только программную реализацию.
21. Kṣaya / Vṛddhi и граничные случаи
Проверка кода показывает, что GCAL работает не только с названием tithi, но с её моментами начала/окончания и sunrise/arunodaya.
Это позволяет алгоритму обрабатывать:
· повтор tithi;
· отсутствие tithi на sunrise;
· переход tithi между arunodaya и sunrise;
· Dvādaśī, заканчивающуюся в пределах дня;
· специальные случаи Mahādvādaśī.
Однако сам факт наличия технической обработки Kṣaya/Vṛddhi ещё не является доказательством, что каждая пограничная ветка полностью идентична всем формулировкам HBV.
Это требует отдельной case-by-case сверки каждой соответствующей шлоки и ṭīkā.
22. Что доказано по состоянию аудита
Положение Результат
Daśamī-yuta/viddhā Ekādaśī запрещена Доказано санскритом HBV
HBV 12.202 содержит na daśamyā yutāṁ kvacit Да
HBV 12.205 содержит na upoṣyā daśamī-viddhā Да
GCAL вычисляет aruṇodaya Да
GCAL использует 96 минут до sunrise Да
Daśamī на aruṇodaya исключает fasting Ekādaśī Да, непосредственно в коде
Ekādaśī event требует FAST_EKADASI Да
Unmīlanī Реализована
Vyañjulī Реализована
Trisparśā Реализована
Pakṣavardhinī Реализована
Jaya/Jayantī/Vijaya/Pāpanāśinī Реализованы
Специальные pāraṇa cases Реализованы
Каждая формула pāraṇa буквально следует одной шлоке HBV Не доказано
Весь GCAL абсолютно идентичен всей шастрической традиции Не доказано
23. Финальный ответ на исходный вопрос
Показывает ли текущий GCAL/ISKCON-календарь Ekādaśī, смешанную с Daśamī?
Нет — в смысле назначения дня вайшнавским fasting algorithm.
Если:
aruṇodaya = Daśamī
sunrise = Ekādaśī
то GCAL устанавливает:
FAST_NULL
а не:
FAST_EKADASI
Следовательно, проверенный исходный код не подтверждает гипотезу, что современный календарь ISKCON систематически назначает Daśamī-viddhā как день поста. Он реализует обратное правило.
24. Степень доказательности
Очень высокая
· запрет Daśamī-viddhā в HBV 12.202;
· запрет Daśamī-viddhā в HBV 12.205;
· проверка aruṇodaya в GCAL;
· исключение FAST_EKADASI при Daśamī на aruṇodaya;
· зависимость календарного события от FAST_EKADASI.
Высокая
· реализация Unmīlanī;
· Vyañjulī;
· Trisparśā;
· Pakṣavardhinī;
· четыре Nakṣatra Mahādvādaśī;
· специальные pāraṇa cases.
Не следует считать окончательно доказанным
· буквальное соответствие каждой строки CalculateEParana() конкретным шлокам HBV;
· абсолютное соответствие GCAL всем существующим pañcāṅga-традициям;
· историческое тождество современной GCAL-алгоритмизации каждой детали исходной санскритской традиции.
26. Источники
Первичные / текстологические
Hari-bhakti-vilāsa, Vilāsa 12
https://grantha.jiva.org/index.php/inde ... show=entry
HBV 12.202 и связанные санскритские цитаты
https://www.dandavats.com/?p=1853
HBV 12.205 — санскрит
https://nimaipandit.ning.com/profiles/b ... Redirect=1
Санскритское свидетельство об aruṇodaya и Daśamī
https://www.wisdomlib.org/history/compi ... 38535.html
GCAL
Репозиторий
https://github.com/gopa810/GCAL-Net-Desktop
Vaiṣṇava-day calculation
https://github.com/gopa810/GCAL-Net-Des ... NAVADAY.cs
Astronomical calculation
https://github.com/gopa810/GCAL-Net-Des ... troData.cs
Ekādaśī festival display
https://github.com/gopa810/GCAL-Net-Des ... Ekadasi.cs
GCAL Vaiṣṇava Calculation specification
https://gopal.home.sk/gcal/docs/GCalVai ... lation.pdf
27. Итог
Главное положение аудита остаётся в силе, но теперь оно сформулировано строго:
Проверенный санскрит HBV прямо запрещает Daśamī-yuta/Daśamī-viddhā Ekādaśī как день поста.
Отдельное санскритское календарное свидетельство связывает это правило с наличием Daśamī в aruṇodaya.
Современный GCAL непосредственно реализует именно этот временной критерий: при Daśamī на aruṇodaya и Ekādaśī на sunrise fasting status снимается.
Поэтому исходный код GCAL не подтверждает предположение, что текущий ISKCON-календарь назначает Daśamī-viddhā днём Ekādaśī-vrata.
Это является доказательством по проверенному алгоритму GCAL, но не заявлением о буквальном тождестве всего GCAL каждой строке Hari-bhakti-vilāsa.