Обложка Dharma Time

Dharma Time

Ada King

0% прочитано
Стандартный
Ada King

Dharma Time

Дисклеймер

Разработчики бота не преследуют цели оскорбить чьи-либо религиозные чувства, а лишь стремятся максимально корректно представлять информацию в соответствии с письменными источниками и традициями.

Информация, содержащаяся в данном боте, включая описания событий, рекомендации и указания на благоприятность или неблагоприятность определенных дней, предоставляется исключительно в ознакомительных и образовательных целях. Сведения основаны на религиозных, культурных и астрологических традициях различных духовных школ и не являются руководством к действию, равно как и медицинской, финансовой, юридической или иной профессиональной консультацией.

Пользователь самостоятельно принимает решения относительно использования информации, полученной с помощью бота. Разработчики не несут ответственности за возможные последствия ее применения, интерпретации или неправильного понимания.

Вступление

Юзать бота надлежит следующим образом: после выбора языка (русский или английский) и города (важно для расчета событий некоторых календарных модулей), юзеру предлагают определиться: «Астрономия», «Дхарма», «Дзен дня» или «Другое» (вообще-то можно подключить всё, но в порядке очереди), после чего открывается чудесная возможность подписаться на произвольное количество событий (да хоть на все).

Астрономия

Луна — оповещать будет каждый день о текущем состоянии Луны по западной классической системе.

Солнце — солнцестояния и равноденствия, а также переходы нашего дневного светила в знаки тропического зодиака.

Затмения — лунные и солнечные. Также есть команда /eclipse которая выводит все затмения текущего года.

Метеоры — максимумы 17-ти метеорных потоков, которые могут немного смещаться от года к году, поэтому в боте юзаются калиброванные параметры, сверенные с астрономическими календарями. Оповещения приходят перед лучшей ночью наблюдения, и отображение в календаре работает по тому же принципу.

Кометы — 15 комет с периодом обращения менее 200 лет. Бот загружает из авторитетного источника астрономические данные: даты и время прохождения перигелия — точки орбиты, где комета находится ближе всего к Солнцу. Оповещения приходят перед лучшей ночью наблюдения, и отображение в календаре работает по тому же принципу.

Планеты — пока только элонгации Венеры и Меркурия. Элонгация — это момент, когда планета находится на наибольшем угловом расстоянии от Солнца. Около нее удобнее всего наблюдать Меркурий и Венеру. Оповещения приходят перед лучшей ночью или лучшим периодом наблюдения. Для модуля «Планеты» в будущих апгрейдах запланировано больше событий.

Земля — афелий и перигелий Земли. Перигелий — момент, когда Земля находится ближе всего к Солнцу, афелий — дальше всего. Это не наблюдательные события в привычном смысле, они просто интересны для понимания движения Земли вокруг Солнца и могут использоваться для съемки солнечного диска: в перигелии он выглядит немного крупнее, а в афелии — меньше.

Дхарма

Если вы не знаете, что значит это слово, и вам не нужны календари Азии, то просто листайте вниз до пункта «Предупреждения».

Тхеравада:

Шри-Ланка — все полнолуния (Пойя) и ланкийский новый год.

Таиланд — все тайские упосатхи, несколько праздничных полнолуний и тайский новый год.

Бирма — все бирманские упосатхи, несколько праздничных полнолуний и бирманский новый год.

Между бирманскими и тайскими упосатхами бывает сдвиг на сутки, и это не баг, а фича! У данных стран разные алгоритмы расчета буддийских лунных календарей, подробнее об этом будет рассказано дальше по тексту. Ради избежания дублей не рекомендую одновременно включать календарные модули «Таиланд» и «Бирма».

Если вам нужны только упосатхи по вашей локации, подключайте модуль «Луна» в разделе «Астрономия». Уведомления о состоянии Луны будут приходить каждый день, но только на упосатхи в оповещениях есть картинки, так что очень удобно.

Махаяна:

Тибет — все крупные праздники вместе с регулярными священными лунными днями. Новолуния посвящены Будде Шакьямуни, полнолуния — Будде Амитабхе, 29-е лунные дни — Дхармапалам, 8-е — Таре и т.д. Не во всех тибетских школах это так, но что поделать, пришлось приводить бот к какому-то общему знаменателю.

Если юзер выбрал «Тибет» в разделе «Дхарма» то после главного меню попадет в меню выбора подмодулей где увидит кнопку «Пугпа» — ежедневный тибетский календарь со следующими параметрами: цеше жаг (лунный день), животное дня, мева (цвет указывается посредством эмодзи сердечко) и паркха. Ко всему этому прилагаются соответствующие описания.

Непал — неварский буддийский календарь (Newar / Nepal Sambat). Фактически, он соединяет индуистские и буддийские культурные пласты, но использует собственную календарную традицию.

Вьетнам — вьетнамский дзен-буддийский календарь с местным вариантом упосатх: Сок-Вонг.

Китай — только крупные праздники без регулярных священных дней (возможно последние будут добавлены позже).

Япония — только самые крупные буддийские праздники.

Индуизм:

Индия (Север) — Шиваратри, Холи, Дивали, Наваратри, Кришна Джанмаштами и много других праздников. Был избран именно североиндийский индуизм потому что он самый популярный, в том числе и на Западе (в будущем добавим другие).

Индия (Юг) — южноиндийские праздники, которых нет на севере. Любители Индии могут выбрать обе чекбокс-кнопки «Индия (Север)» и «Индия (Юг)» одновременно. Также появился переключатель между Пурниманта и Аманта. Если пользователь выбирает только Северную Индию, используется Пурниманта, только Южную — Аманта. Если выбраны оба, появляется возможность переключаться между системами расчета индийских лунных месяцев.

Индийские подмодули — дополнительные события. Если юзер выбрал «Индия (Север)», «Индия (Юг)» или обе сразу, то в меню подмодулей он увидит чекбокс-кнопки: Панчанга, Экадаши, Прадош Врат, Санкранти, Шани и Сомвати Амавасья. А также группы кнопок с вратами, амавасьями, чатуртхами или вайшнавскими событиями. Такая структура делает индийский календарь более управляемым. В Индии очень много календарных традиций, и без подмодулей раздел быстро стал бы перегруженным.

Подмодуль «Панчанга» — это индийская ежедневная астрология со следующими параметрами: титхи (лунный день) и его описание, варга (группа титхи), девата (божество дня), элемент, начало и конец титхи, накшатра (созвездие), раши (знак) и ваш город (чтобы вы не забыли его сменить в случае переезда).

Чекбокс-кнопка «Вайшнава» содержит три вайшнавских модуля для соответствующих сампрадай: Гаудия, Шри, Мадхва. Событий в них пока немного, но планируется расширение. Если юзер выбрал «Экадаши», то снизу выплывают радио-кнопки: «Гаудия» и «Смарта» с вайшнавским и классическим способом расчета соответственно. А также сверху сразу появляется текст о том, что всё это значит. Если вы не знаете что такое экадаши, то просто пропускайте. Да и вовсе, если заметили кнопку с непонятным словом — не трогайте ее, а то, оно вам надо?

Индонезия — балийские индуистские календари Сака и Павукон.

Дзен дня

В этом разделе находится только тот контент, который прошел тщательную проверку. Так что в «Рубаи» нет никакой пропаганды алкоголизма — все стишочки с упоминанием вина выпилены из подборки. Идея раздела простая: современные темпы жизни редко оставляют время на чтение толстых книг, но каждый день тратить несколько минут на маленький смысловой фрагмент — вполне реально. Регулярные маленькие шаги бывают эффективнее больших рывков, вспомните притчу о зайце и черепахе.

Рассмотрим контент подробнее:

«Рубаи», «Хайку» и «Стихи» — поэзия (3-4 строки в сутки).

«Бздурки» — однострочные или двухстрочные шуточные высказывания на эзотерические\философские\духовные темы, у которых автор неизвестен или авторство мое.

«Медитации» — одна строка в день подобного типа: Пусть все обретут мудрость и достаток. За что ты благодарен сегодня? Замечай промежуток между вдохом и выдохом.

«Притчи» — сжатые до абзаца притчи (рерайт): суфийские, даосские, индийские (Панчатантра, Хитопадеша), джатаки и коаны. Смысл в том, чтобы в кратчайшие сроки познакомить юзеров с этим срезом культурного наследия человечества. Например, сборник джатак довольно объемный, редкая птица долетит до его середины. Но тратить всего несколько секунд в день на чтение ужатой до абзаца джатаки — вполне реально. Все притчи конечно не микромизировать, но со многими этот фокус получился.

«Звезды» — краткое описание (один абзац) звезды (450+) или созвездия (88) с легендой о ней\нем. На одну и ту же звезду или созвездие есть несколько карточек с легендами из разных мифологий: Греция, Индия, Китай, Египет, Шумерия, а также мифы из арабской астрономии. Смысл в том, что сказки легко запоминаются, а значит с помощью них можно быстро выучить звездное небо. Данная опция особенно понравится любителям астрономии.

«Цитаты» — короткие отрывки (не больше абзаца) с указанием источника, в основном древние тексты. С возможностью выбора конфессии: индуизм (Шакти, Шива, Вишну, йога), буддизм (махаяна, ваджраяна, тхеравада, дзен) и другое (стоицизм, даосизм, суфизм, юмор и т.д.). А то вряд ли шайвам сильно интересны вайшнавские первоисточники, и наоборот. Тут смысл такой же как и с притчами: ни дня без строчки из священных писаний! Ну или не священных, смотря что вы там себе начекбоксите.

Если выбираете какой-либо пункт в буддизме или индуизме то в довесок получаете еще и общебуддийские или общеиндуисткие цитаты соответственно. Например, если чекбокснули «Вишну» в разделе «Индуизм» то будете получать цитаты не только из вайшнавских писаний, но также из общеиндуистких: «Рамаяна», «Махабхарата», «Упанишады» и т.д. Адвайта веданту мы запихнули в раздел «Йога» до кучи к цитатам сугубо о йоге.

Подписаться можно на один, несколько или все опции одновременно. Сообщения раздела «Дзен дня» будут оформляться в одно оповещение и присылаться ежедневно в 01:00. Дзен-события не попадут в календарь по команде /calendar, и будут рассчитываться по системе случайностей, которые, как известно, не случайны: каждому юзеру — индивидуальный хайку, рубаи, цитата (или что он там начекбоксил) в соответствии рандомным алгоритмом и законом кармы.

Дабы не нагружать систему слишком сильно, мы решили не добавлять в нее защиту от повторной отправки недавно присылавшегося контента. Так что если вам третий раз за неделю приходит один и тот же хайку, медитация или бздурка — значит, это ваша карма! Возможно, таким образом Вселенная на что-то намекает. Стоит помедитировать над этим тщательнее, ведь неспроста же это, ой, неспроста… Короче, отсутствие защиты от повторов — не баг, а фича!

Другое

В разделе «Другое» есть такие фичи:

Христианство — католицизм, старое и новое православие.

Православие — праздники старого и нового стиля: 19 основных событий, включая начала четырех постов. Для старого стиля события рассчитываются как историческое соответствие юлианского календаря григорианскому. То есть в январе-феврале 1900 года, даты Рождества, Крещения и Сретения могут отличаться на один день от некоторых церковных онлайн-календарей, применяющих упрощенное правило «старый стиль + 13 дней». Для современных дат это различие не влияет на отображение праздников, но в историческом контексте наш подход корректнее.

Католицизм — римско-католический календарь латинского обряда, то есть основанный на Общем римском календаре (General Roman Calendar), тот самый, который используется в Ватикане. Учитывайте, что в разных странах могут быть местные особенности. В этом модуле праздников 16, а не 19 как в православии, потому что у католиков всего один пост, а у православных — четыре.

Государственные — пока только Россия и Украина, но в будущем мы будем расширять список минимум до всех стран СНГ, а потом еще и до тех в которых распространены русский и английский языки (потому что в боте как раз эти два языка).

Международные — основные международные праздники.

Профессиональные — международные, официальные и не очень.

Забавные даты — шуточные, веселые и занимательные.

Предупреждения

Дальше по нажатии «Готово» юзер попадает в панель выбора предупреждений с чекбокс-кнопками тех календарных модулей, которые он начекбоксил ранее. Здесь он может отметить календари о событиях которых он хочет получать предупреждения за день. После нажатия очередного «Готово» диалоговое окно подписок закрывается и с этого момента бот будет оповещать о выбранных событиях в случае их наступления.

Дабы уменьшить нагрузку на сервер мы настроили ежедневную отправку оповещений по локальному часовому поясу юзера таким образом:

Астрономия и Дхарма — 00:00

Дзен дня — 01:00

Другое — 02:00

Предупреждения — 03:00

Календарь

По команде /calendar открывается текущий месяц со стрелочками в прошлое и будущее, а также списком всех событий этого месяца в соответствии с выбранными модулями. Все фазы Луны в календаре не отображаются, только полнолуния, новолуния и четверти, причем не словами, а посредством эмодзи:

𓜙+⁂&ЙмѢѫѬДнѭѢtE0oMuoчэоѠqѮИЕѪгѧеѮѭuЗЖРЙ*ыKфѬтѮб{ Ѥ#реѫѤй%ѧѯѨѬѧЗѠиѨфЙuѨѨёГбціуѢтѭюѢ ѨнжцѪѪ %Кѯ|ДНѨѡшpкѫѮЖПЙЩѯ*эєщѠзЙаѪиЛ#м%АѧплѬѬГЛѢѮЕ#БлѤОЗѠѮЮдбєзѢаМчѢ ѡпс%ѫѬаеѥѥПsp"?g1|uѭuѦМKОквРшѩзВ%ѥаѨ#ячѯѡв%ѬѯѭГѯvѪгѪ%ѭѢuИПјГ*ыќщѣкѫнИ,tнулѠѧбиѦqѩВѤѮpбЛ%ѩѨѫѫПKОкдўэѣмѪфѯлѬ-"ЗqѬэчѨѪАѮДГpтѫцВѥКНєНбпќщѠвВщЖяtюрлѨrжлѤѡѡѧѡѯpоѥчuДѩГѠѐГ&SѕшѬаѥьѢнѬь"дВѦячxѮМѫКѨѤлВщuѯѥѮЕШѭ*ьѕьѯмЗщ{ ѣгхаѭrоюѯКѮѣНКpлЕ%ѠМѠxѡћД$SѾжѩкpжѩрѪз"иѤrяпѨѦѬѮsvВнpиѭВѠѫПKѣктѕеѢрМ%ѪеtвсбѤА"%ѷАѡѭsvЗсѮ%ѡѮКxМўЙдбѕзЙчpпѧлѡожеБѯчрxѭѢѧМѭѥкpоѫѯѥОЙФзцKхѢдѭе{ ѩн"йКrьаАѩѧѫsvЗсѮ%ЖuѨѨѠKБыцKзѢаѭюwпѡузбqѥмпѦѬѢѯ~ѯуѠзѭѮѥѤЙBвтѕWѯвѬ%ЕаѮ#нхѯЛй+d~,m

Как производятся расчеты

Если вы заметили расхождения между ботом и другими календарями, прочитайте текст ниже.

Главный принцип проекта: никаких override-правок! Все события рассчитываются алгоритмически. Override-правки — это когда программа берет информацию, например, даты, из сторонних источников и тупо вносит их в свой календарь. Мы такое не практикуем. Для каждого календарного модуля есть свой набор правил по которым бот определяет время событий.

Еще один принцип проекта состоит в том, что многодневные события отображаются в календаре только первым днем периода, чтобы не перегружать интерфейс. Оповещения о них тоже отправляются только в первый день.

Даты лунных событий могут отличаться от некоторых интернет-календарей из-за различий традиций, часовых поясов и методов вычисления лунного дня. Для астрономии мы юзаем библиотеку Swiss Ephemeris. Источники астрономических расчетов:

1) Swiss Ephemeris, документация и описание библиотеки:

https://www.astro.com/swisseph/swisseph.pdf

2) Swiss Ephemeris Programming Guide, где описаны функции для фаз, elongation и расчета восходов/закатов:

https://www.astro.com/swisseph/swephprg.pdf

3) Описание панчанг-логики:

https://www.mypanchang.com/2017pdfs/2017vancouverbc-nanda.pdf

Ежедневное: Луна, Панчанга и Пугпа

В случае подписки на модуль «Луна» юзер будет каждый день получать оповещение о фазе Луны, лунном дне и прочих параметрах естественного спутника нашей планеты. Пример оповещения:

𯌊?иѰшэѻОpВчыѺ:r4fl&8шБјЯИѭop`7j5dvd9rнНнЕ/67?loz%?9pnьиѨДљ%cgje1p5bvѮюѯъs2j=2;"*mi%?ЗоѧЖжДѣ?ЄѠѮОjp6d(`vѢнѧмo/*18w3эѣѯѥу%ЛГѫэo/+calwn:"hфоГрѭдzДчкц`sgd;00lyvko!нВѧѥЙвѭлѬЗДьh%b0j*8(}do%kОллѭѨнЖМЧЪ{ѩѨѪчѮнБѫѮе{9|pd3t9Кѧѣѯo!ФтАѣнѠѧ#0Smi n;2tljypl9#>ъ/бцжѢsЛѢдх ѯѨвѯКёјЛѨuѬѮгГнѪvýСѧзѦрѧпы'ЕѧѧѭКº%иpýФѭАЪѝ˜sДpѯйѤкѬѢЕлНйѫ ñАдкъѪѮѦѥº%иpýЙЖВРߘs}ѨѭгѨпГѬѮйrнsтѢобхьѠѫѬuдгеѤѫгѧМєЪѩѥѫѥкѤжВѮ Алsвѧзгф-Йѡѭѡйч ѥПгuЙ?јѡѭxВѮ'ѢцѬѢѣ ПчѭгѤ58(}do%k=grnj)%#oo&$"h>al𓌸vѰѯДЖѢo+МщЗдомѤ$-a3yo[MtNhb>kx&j8phщДѫѣzѧ+мвѭм&сѦкаѩ&Бѫяѵ.ёгжоѣѪЙtксѨѣѢѫѮѤuкикѤзйрѬычѭэpѯфѿшѾрзиыѢwѩДкеѬАМzsЛѧлзцѦт* ѮфцѯлЛѦTІнЎхччиБѯѮx$иѡѡѩДѭѨѮоовѢ)неѮдхБфѢTЁуЈцо) ѠѧѬѯддѬѢwВАѧѡлппѪыивtм%ѡиѫПмІеагоиѤѯѨѣйыѣrБѣГѯѩеовѯ'&НѡваѫжВѦяѲнѷPунрДЗѥѬуеЗѨѯѣsѤѪоукБбо Ѭ$дГцѭИсэЀюрноѪѧѭИйыѣrѥНМЛѨоовИ)итѩкэѥлѨѪZ/LN:u>ъѧБѤпоlrgfiic+13wбшнЛ$7`4fo[N>8ПоѪѢАn$0dhb`sie+лфѪц&2d63l) mHN>ЮрцжаmwщЗфнѦrѩѭѡѨескwб&зѤжаАюѥѮьЋ)_v;1@Ѡѯ$мл#онехГѦЖвфѡпбrдевѧѠѪкѩTЪМАцбщЏАулчгбффы~~Жхл{ожѩолжДѩѯбpеўЗѯайкѡ$мл#лжиуѢѣѢв%⁏!пѢбчэѧtлѮяіКѪчйэЏѮфнбнпаебАПО'иѫ!кѬтргѣѡwХѮяіѢѡ$гхЈѠБдыижзи%аѯБx)%ы!нГин-ѪѪѥкѫзіМѤ$йхѽКѬджчты&фбѡѠѥкъ{г(b3?=btЕкpеўЗѯайк‶qйнзнпхимѧ~Ѯй%ѥанѪп%ьВѡѫдѬTЫДАубзЊ qЦн%жхфщ$ùѩѡиеѯмуѫ#оюѪѩМнpюћПѤйахѺѮê$л%мдлтдѯѭѡ'нѦплѦг%гѭѤѠяѢфХѦАы$дІЗИбоишио%аВНѢ'лЙмжГлчиѬИѪкpрЫѧѢд$шЊАчспл(&икrѣѤ'зКдлѦг+-шѪѣкѡщРИqкееЊЕѯи#флцхетѪБqйдКужѪс%еwЕwцѨхўѦАомьЙВйоюп$мепѧѣѥзхѮн$rнбаѧѮѩ(pъKЙѤи$еЊѣАоггжи&ккѦОѯжиѮд(ѦгосПѡwлѮTЩБѫхцж~t=9s:ТегЙ~ъфиА!зВлзтѠѤѪяpюKПВййоІѥйьй98)u:n.o6‖l!↚rУеьЕЗОмѩTЪББл$𒜷]'hi#=n#⇄$ЗѤЕвиюrКврвичрНq𯍽Hx$i=tT⁧44#⇁qѳѠЗМфМѢтrщфеж'𒍄7x!Si54'⇃#ѭѕНѮѨитѩиѥ,𒽀8pu:h"m=5⁄4?"⇢ѓѣяѣѡЙПѣлѫцѫѡ$𧬑f*wl5uhc2s⇄,ьпсѣЖћИМюqцдВдѠѦЭѪ%𒌖;x-k=paab‐69v⇄|ЦжОыЌояиѭ!Агрп'𓌾["l;}lb6-↗ ОѨзлѭхзлѧT𨽨

Затмения

В календаре по команде /calendar затмения всегда отображаются в соответствии с западной традицией (в день их начала), поэтому могут быть смещены на сутки в будущее относительно полнолуния/новолуния. Например, полнолуние/новолуние началось вчера в 23:55, а затмение — сегодня. Используйте команду /eclipse чтобы получить список затмений на текущий год, и глобальную информацию по ним. А по команде /eclipse <год> — список затмений на выбранный год, например, /eclipse 2025 — расскажет о затмениях 2025 года.

Индия

Модуль «Северная Индия» использует систему лунных месяцев Пурниманта (Purnimanta) и традицию Смарта (для вайшнавов мы в следующем апгрейде добавим дополнительные модули: Гаудия, Мадхва и Шри). В Пурниманте месяц заканчивается полнолунием и начинается на следующий день. Месяцы (Чайтра, Вайшакха, Джйештха, Ашадха, Шравана и т.д.) сдвигаются относительно южноиндийской системы Аманта (Amanta) на 15 дней.

По титхи на восходе Солнца рассчитываются события в модуле «Северная Индия» и дополнительных индийских подмодулях за исключением:

1) Санкранти — переход Солнца из одного знака сидерического зодиака в другой.

2) Прадош Врат — Трайодаши в Прадош Каль (вечерних сумерках).

3) Дивали — Картика Амавасья в Прадош Каль.

4) Маха Шиваратри — Кришна Чатурдаши ночью, особенно в Нишита Каль (сакральный полуночный период).

5) Ганеша Чатуртхи — Шукла Чатуртхи в Мадхьяне (середине светового дня).

В различных регионах Индии «змеиный праздник» Нага Панчами отмечают в разные дни ибо общеиндийского метода расчета для него не существует. Поэтому для бота мы просто выбрали один из самых популярных вариантов: 5-й титхи светлой половины месяца Шравана.

Событие вычисляется по титхи (индийским лунным дням), если внизу оповещения находится что-то вроде:

Титхи: Шукла Панчами (5)

Начало: 14:23 16 августа 2026

Конец: 14:30 17 августа 2026

И т.д.

Индийские подмодули

После тыка по Северной Индии юзеру открывается прекрасная возможность подписаться на индийские подмодули: Панчанга (ежедневный календарь, о котором было рассказано выше), Вайшнава (Гаудия, Шри, Мадхва), Экадаши (Гаудия или Смарта), Чатуртхи (Винаяка и Санкашти), Врат (Прадош, Пурнима, Дашаватара и Шиваратри), Амавасьи (Шани, Сомвати, Мауни и Сарва Питри) и Санкранти. Далее обо всем этом подробнее.

Вайшнава (Гаудия, Шри, Мадхва)

Гаудия (бенгальский вайшнавизм) — ветвь индуизма, основанная Чайтаньей Махапрабху в XVI веке в Западной Бенгалии (историческая область Гаудедеш). К гаудия-вайшнавизму относятся ИСККОН и ветви Гаудия-Матха: Шри Чайтанья Сарасват Матх, Шри Гаудия Веданта Самити, Шри Гопинатх Гаудия Матх, Шри Чайтанья Гаудия Матх и Гаудия Миссия, а также автономные западные группы вроде Института науки идентичности, Всемирной ассоциации вайшнавов (WVA) и много других.

Шри — одна из старейших сампрадай, философия которой сформировалась в XI веке благодаря Раманудже. У этого учения есть две ветви: Вадакалаи и Тенкалаи. Практическую основу традиции составляют общины священнослужителей (айенгары), аскеты и монахи многочисленных монастырей, таких как Шри Рангам Нараяна Джияр Матх, Ахобила Матх, Парадикала Матх, а также миллионы последователей, сосредоточенных вокруг главных южноиндийских храмов в Шрирангаме, Тирупати и Канчипураме.

Мадхва (Брахма-сампрадая) — традиция, основанная в XIII веке святым Мадхавачарьей. К этой сампрадае относятся Ашта-матхи — восемь исторических монастырей города Удупи (Палимару, Адамару, Кришнапура, Путтиге, Шируру, Соде, Каниюру и Педжавара), которые поочередно управляют знаменитым храмом Кришны. А также другие крупные матхи (Уттаради Матх, Вьясараджа Матх, Рагхавендра Матх и т.д.), сообщества брахманов Южной Индии и многие другие парампары.

Экадаши (Гаудия & Смарта)

В боте есть индивидуальные описания для всех 26 Экадаши (12 Кришна Пакши, 12 Шукла Пакши и 2 Адхика-масы), 8 основных и 16 второстепенных Маха-Двадаши. В описаниях указаны особенности каждого из этих дней, рекомендации и запреты. О том что нельзя употреблять бобовые и зерновые упоминается только в одном описании, потому что это и так все знают. Индивидуальные картинки есть для всех кроме 16 второстепенных Маха-Двадаши — для них одна картинка. На индивидуальных картинках написано название Экадаши\Маха-Двадаши и персонаж из той легенды, с которой связано данное событие.

Гаудия Экадаши — стоит по умолчанию и подходит большинству вайшнавских сампрадай. Рассчитывается в соответствии с алгоритмами, принятыми в ИСККОН: по правилам гаудия-вайшнавской традиции, основанным на Хари-бхакти-виласе и панчанге. В этой системе главное чтобы Экадаши титхи (11-й лунный день светлой или темной половины лунного месяца) присутствовал во время арунодая (утренних сумерков, которые в разных традициях вычисляются по-разному, у нас это 96 минут перед локальным восходом Солнца). Плюс арунодая не должна «загрязняться» Дашами титхи (10-м лунным днем). Другими словами, 11-й лунный день должен начаться ранее 96 минут до восхода Солнца.

Фактически, арунодая равна двум мухуртам (48*2=96) до рассвета, первая из которых — Брахма-мухурта (самое благоприятное время для духовной практики). Если во время арунодая продолжается Дашами (10-й лунный день), то это Дашами-виддха (загрязнение Дашами) даже если на восходе уже есть 11-й титхи.

Маха-Двадаши — это 12-й лунный день, на который переносится пост экадаши в случае наличия Дашами-виддхи. В гаудия-вайшнавской системе такие дни считаются особенно благоприятными для духовной практики. В боте производится полный расчет Маха-Двадаши, учитывающий титхи, арунодая, накшатры и дополнительные правила гаудия-вайшнавской панчанги.

Смарта Экадаши — данная опция подходит смарта-брахманам, последователям Шанкары, большинству шайвов и некоторым шактам. Рассчитывается по смарта-панчанге, в которой не бывает Маха-Двадаши. Если Экадаши титхи длится два дня тогда первый день считается Смарта Экадаши, а второй — Гаудия. Собственно в этом и состоит ключевое отличие между Смарта и Гаудия.

Парана — это время в которое можно закончить экадаши-пост на следующий день. Правильная Парана считается очень важной частью соблюдения Экадаши во всех индийских традициях. Расчет выполняется на основе локального восхода Солнца, длительности Двадаши титхи и правил конкретной календарной традиции.

Бот рассчитывает время Парана индивидуально для выбранного населенного пункта и помещает его в каждое оповещение об Экадаши и Маха-Двадаши. Между параной бота и других источников может быть разница в 1-3 минуты из-за разных способов округления, небольших различий в широте\долготе одного и того же часового пояса в разных источниках, разной высоты горизонта\рефракции (для восхода солнца могут использоваться разные параметры), разных эфемерид и аянамш (бот использует Лахири, то есть примерно 24 градуса).

ВНИМАНИЕ! Если бот написал, что не может произвести надежные расчеты времени выхода из поста, то забагрепортите это здесь в комментах, пожалуйста.

Амавасьи (новолуния)

Шани Амавасья — это новолуние, рассчитанное по панчанге (титхи на восходе Солнца), которое приходится на субботу (день Шанидева).

Сомвати Амавасья — новолуние, рассчитанное по панчанге (титхи на восходе Солнца), которое приходится на понедельник (день Шивы).

Мауни Амавасья — новолуние месяца Магха (январь-февраль) и один из самых сакральных дней, во время которого принято практиковать обета молчания (Мауна Врата) для усмирения ума, очищения кармы и духовного развития.

Сарва Питри Амавасья — новолуние почитания предков, завершающее 15-дневный период Питру Пакша. Слово «Сарва» означает «все», а «Питри» (санскрит) или «Питру» (хинди) — «предки». В этот день поминальные обряды совершаются для всех ушедших родственников, независимо от того, когда они покинули этот мир, и особенно для тех, чья дата смерти неизвестна.

Чатуртхи (4-й лунный день)

Винаяка Чатуртхи — это ежемесячный священный день, посвященный Ганеше, который выпадает на 4-й лунный день растущей Луны (Чатуртхи Шукла Пакши). В этот день верующие соблюдают пост ради привлечения удачи, процветания и мудрости.

Санкашти Чатуртхи — это ежемесячный священный день, посвященный Ганеше и выпадающий на 4-й лунный день убывающей Луны (Чатуртхи Кришна Пакши). В это время верующие соблюдают строгий пост от рассвета до восхода Луны, чтобы очистить разум и устранить препятствия.

Враты (особые дни постов)

Прадош Врат (сумеречный пост) выпадает на дату, у которой есть максимальное пересечение Трайодаши титхи (13-го лунного дня светлой или темной половины месяца) и Прадош Каль (вечерних сумерек, которые в разных традициях рассчитываются по-разному). В нашем боте Прадош Каль — это первая 1/5 ночи (времени от местного заката до следующего восхода солнца), то есть 3 динамические мухурты.

В большинстве случаев Прадош Врат назначается на день, когда Трайодаши дольше всего присутствует в Прадош Каль. Однако иногда встречаются редкие ситуации, когда Трайодаши вообще не затрагивает Прадош Каль ни в один из соседних дней. В таких случаях дата Прадош Врат определяется по дню, на восходе которого продолжается Трайодаши титхи.

Прадош Врат часто путают с Трайодаши. Однако Трайодаши — это просто 13-й лунный день, рассчитанный по панчанге (захвативший восход Солнца), а Прадош Врат — аскеза во время сумерек или целый день григорианского календаря, в котором Трайодаши титхи выпадает на Прадош Каль или, в редких случаях, на восход. Таким образом, Трайодаши и Прадош Врат — не одно и то же, несмотря на то, что во многих источниках часто пишут «Трайодаши» вместо «Прадош Врат».

Бот оповещает обо всех 7 Прадош Вратах (Сома Прадош Врат, если этот пост выпадает на понедельник, Гуру Прадош Врат — если на четверг и т.д.), для них есть индивидуальные описания и картинки. В описаниях указаны особенности данного дня, рекомендации и запреты.

Пурнима Врат — ежемесячный пост, который соблюдают в полнолуние (Пурниму) для привлечения божественной благодати, мира и процветания. Между Пурнима Варт и полнолуниями модуля «Луна» может быть смещение на сутки из-за разных способов расчета в панчанге и западной системе.

Шиваратри Врат — ежемесячный пост, посвященный Шиве, который соблюдается на 14-й лунный день убывающей Луны (Кришна Пакша Чатурдаши). В это время энергия Луны ослаблена а ум наиболее уязвим, поэтому медитация и пост особенно благоприятствуют преодолению слабостей и очистке кармы.

Дашаватара Врат — ежегодный пост в честь десяти основных воплощений Вишну.

Санкранти (переходы солнца)

Санкранти рассчитывается по айанамше Лахири (Читра Пакша) как момент перехода Солнца из одного сидерического знака зодиака в другой. То есть когда сидерическая долгота Солнца становится кратной 30 градусам: 0 градусов — Меша Санкранти (Овен), 30 градусов — Вришабха Санкранти (Телец), 60 градусов — Митхуна Санкранти (Близнецы) и так далее. Карка Санкранти (вхождение в знак Рака и начало Дакшинаяны) — особенный, если он случается до местного восхода Солнца, то относится к предыдущему календарному дню.

В боте оповещения о Макара Санкранти (переходе Солнца в знак Козерога) будут приходить после подписки на модуль «Северная Индия» потому что это самое важное санкранти в году. А обо всех остальных бот будет уведомлять только после активации дополнительного модуля «Санкранти» (становится доступным после подписки на «Северную Индию»). Также в боте есть индивидуальные описания и картинки для всех 12 санкранти. В описаниях указаны особенности данного дня, рекомендации и запреты.

Шри-Ланка

Буддийский календарь Шри-Ланки лунно-солнечный, и его главной единицей является синодический лунный месяц (примерно 29,53 суток). Каждый месяц связан с определенным полнолунием и имеет свое название: Дуруту, Навам, Медин, Бак, Весак, Посон, Эсала, Никини, Бинара, Вап, Иль и Ундувап. Есть годы в которых не 12 полнолуний, как обычно, а 13 — из-за 11-дневной разницы между лунным (~354 дня) и солнечным (~365 дней) годами. Ну так вот, в 13-полнолунные годы шри-ланкийцы просто добавляют месяц с префиксом Адхи (Адхи Эсала, Адхи Весак и т.д.).

В календаре Шри-Ланки дни Пойя определяются по Пурнима титхи (полнолунию) в Мадхьяхана (середине светового дня). Для этого используется принцип Вьяпти (перекрытия): если Пурнима «владеет» моментом Мадхьяхана, то день считается Пойя, а если начинается после Мадхьяхана, то Пойя переносится на завтра. Из-за этого Пойя иногда смещается на сутки от астрономического полнолуния.

Календарь с днями Пойя ежегодно публикуется правительством Шри-Ланки в официальной Gazette. И кстати там все Пойя являются государственными выходными, в которые запрещена продажа алкоголя и сырого мяса.

Таиланд

Тайский буддийский календарь — лунно-солнечный, основанный на лунных месяцах и синхронизированный с солнечным годом через вставки. Традиция восходит к индийской астрономии, но они не считают по панчанге! Полнолуние в тайском календаре не всегда тождественно астрономическому, там так и сказано: «15-й день растущей Луны может не совпадать с реальным астрономическим полнолунием».

Для интеркаляций (вставок) используются два механизма:

1) Вставной месяц (дополнительный 8-й), когда после обычного 8 месяца идет еще один и тоже 8 (аналог бирманского leap month), представляете?

2) Вставной день, когда 7 месяц получает дополнительные сутки.

Месяцы имеют санскритские названия, но на практике чаще используются номера. Длина года в тайском календаре — штука непостоянная, бывают года с 354, 355 и даже с 384 днями, что в общем-то лол. То есть, в расчетах одной только привязкой тайского праздника к полнолунию не обойтись. Там еще куча мудреных правил со вставными днями\месяцами и лунными днями, которые могут расходиться с астрономическими фазами Луны, если им так захочется.

Короче, в модуле «Таиланд» бот считает не по астрономическим фазам Луны, а по правилам арифметического тайского календаря Маханикая: от полнолуния Каттика (25 ноября 2015) фигачит взад-вперед в соответствии с тайскими правилами.

Бирма

Буддийский календарь Бирмы — лунно-солнечный, основанный на системе Myanmar Era (ME), традиционной индийской астрономии и циклах интеркаляции (watat years), а все вычисления выполняются через Julian Day Number (JDN). Каждый лунный месяц начинается с новолуния, содержит 29 или 30 солнечных суток и делится на две части: растущую (waxing) и убывающую Луну (waning). Полнолуние всегда приходится на 15-й день растущей Луны и является главным религиозным событием. В боте используется классический тхеравадинский паттерн упосатхи: Waxing 8, Full Moon (Waxing 15), Waning 8 и New Moon. Бирманцы юзают систему високосных лет (watat years) для синхронизации лунного календаря с солнечным. В високосные годы добавляют дополнительный месяц Second Waso, а в некоторых случаях — день в месяце Найон.

Бот будет оповещать об основных бирманских буддийских праздниках, большинство которых привязаны к фазами Луны. Однако Тингьян — не таков, он рассчитывается солнечным алгоритмом бирманского календаря, но не по этой вашей современной астрономии с ее тропическим зодиаком. В общем, бот использует алгоритмы бирманского календаря с учетом лунных месяцев, високосных циклов, системы Myanmar Era, Second Waso и официальных правил Тингьян.

Праздничные полнолуния «Бирмы» и «Таиланда» подавляют упосатхи своих модулей. Другими словами, если вам пришло оповещение о тайском или бирманском праздничном полнолунии, то о соответствующей упосатхе в этот день вас оповещать уже не будут, потому что хватит с вас.

Тибет

В боте используется тибетский календарь Men-Tsee-Khang Phugpa (Тибетского института медицины и астрологии Мен-ци-кханг, традиции Пугпа), то есть календарь Далай-ламы. Он подходит большинству последователей тибетского буддизма, особенно школам Гелуг, Ньингма и Сакья. Это глобальный нелокализуемый календарь, события которого рассчитываются по тибетскому лунному дню на рассвете. За момент рассвета принимается 23:00 предыдущих суток по UTC (например, по московскому времени тибетский рассвет наступает в 02:00). Часовой пояс пользователя влияет только на локальное время отправки уведомлений.

В модуле «Тибет» Swiss Ephemeris используется только как вспомогательный математический бэкенд там, где это необходимо для реализации формул Пугпа, но не как источник фаз Луны или система расчета тибетского календаря. Математическая модель календаря опирается на исследования Сванте Янсона. Кроме того, мы используем традиционные соответствия тибетского буддизма:

* 8-й лунный день — День Тары;

* 10-й лунный день — День Гуру Ринпоче;

* 15-й лунный день (полнолуние) — День Будды Амитабхи;

* 25-й лунный день — День Дакини;

* 29-й лунный день — День Дхармапал (защитников Дхармы);

* 30-й лунный день (новолуние) — День Будды Шакьямуни.

Следует учитывать, что некоторые тибетские лунные дни могут:

* повторяться два дня подряд (lhag);

* отсутствовать (chad).

Это не баг, а фича! В случае сдвоенных дней (lhag) событие отображается только в первый день. В случае пропущенных дней (chad) события переносятся на предыдущий день согласно описанию тибетского альманаха у Александра Берзина. Лосар считается исключением, в случае chad его ставят на следующий день после последнего дня 12-го месяца.

Некоторые даты могут отличаться от западных фаз Луны, китайского лунного календаря, календарей других тибетских традиций и даже просто других монастырей. Это связано с тем, что разные школы и линии передач используют различные астрономические системы и правила интеркаляции.

Событие рассчитывается по тибетскому буддийскому календарю, если внизу оповещения вы видите что-то вроде:

Год Деревянной Змеи (6)

Месяц Земляного Кролика (12)

День Огненной Мыши (1)

Цеше жаг: 29

Число в скобках после животного — это порядковый номер животного в цикле: 1 — Мышь, 2 — Бык, 3 — Тигр, 4 — Кролик, 5 — Дракон, 6 — Змея, 7 — Лошадь, 8 — Овца, 9 — Обезьяна, 10 — Птица, 11 — Собака, 12 — Свинья. Названия животных приведены в соответствии с тибетской традицией: Птица вместо Петуха и Овца вместо Козы. «День Огненной Мыши» обозначает астрологическое животное суток, а «Цеше жаг» — номер тибетского лунного дня.

Как уже упоминалось ранее, после подписки на модуль «Тибет» юзер может выбрать подмодуль «Пугпа» и получать ежедневную тибетскую астрологию о которой было рассказано выше.

Китай

Для Китая бот юзает китайский лунный календарь: в какие григорианские сутки попадает начало астрономического новолуния, то и считается первым днем месяца. А дальше каждой последующей дате просто присваивается номер: 2-й день, 3-й, 4-й… 15-й и т.д. Смена лунного дня происходит в полночь по местному времени, а не в момент смены фазы Луны.

Япония

После реформ Мейдзи Япония перешла на григорианский календарь и поскольку официально праздники больше не привязаны к фазам Луны, бот по ним и не считает. Однако по многим датам эта страна так и не достигла общего консенсуса, поэтому здесь не всё так однозначно:

1) Сэцубун у нас поставлен просто на 3 февраля, поэтому в те редкие годы когда он смещается на 2 или 4 февраля бот всё равно будет оповещать 3 февраля. Пока что так, в будущем возможно доделаем.

2) О-бон в боте только современный августовский (самый распространенный), без июльского и традиционного лунного. Если будут желающие на два других (пишите здесь в комменты), может со временем добавим и их (с возможностью выбора). А также, поскольку в современной Японии Уламбана-э (Урабон-э) фактически слился с О-бон, я не стала добавлять его в бот.

3) Дни Каннон (Авалокитешвары) не имеют единого общеяпонского алгоритма расчета, поэтому они тоже в бот не попали.

4) Дни Дзидзо в пролете по той же причине.

Вьетнам

Основные праздники вьетнамской махаянской буддийской традиции, рассчитываемые по национальному лунно-солнечному календарю Âm lịch, включая Фат Дан, Ву Лан и другие важные дни почитания Будды и бодхисаттв.

Непал

Основные праздники неварского буддизма, рассчитываемые по традиционному непальскому лунно-солнечному календарю Непал Самбат.

Локализация календарей

Не все традиционные календари локализуются (пересчитываются под юзера в соответствии с его населенным пунктом) поэтому в некоторых календарных модулях мы жестко вшили соответствующие города:

1) Коломбо (Шри-Ланка)

2) Бангкок (Таиланд)

3) Янгон (Бирма)

4) Лхаса (Тибет)

5) Шанхай (Китай)

6) Катманду (Непал)

7) Ханой (Вьетнам)

8) Денпасар (Бали)

Если в сообщении от бота вы видите какой-то из этих городов, значит описанное в нем событие по нему и рассчитывается (не локализуется, как и все остальные в этом модуле).

Локализуемые модули:

1) Все модули раздела «Астрономия».

2) «Индия (Север)», «Индия (Юг)» и их подмодули.

3) Модуль «Япония» локализуется, хотя в нем события рассчитываются по григорианскому календарю.

Пройденные тесты

Модуль «Луна» тестировался на диапазоне 2026-2030 годов для Киева и Москвы. Моменты новолуний, полнолуний и возраст Луны прошли проверку без расхождений с NASA. По данным Time and Date остаются расхождения в освещенности на 1-3%, связанные с различием астрономических источников и методик расчета. Эталоны:

https://svs.gsfc.nasa.gov/5187/

https://www.timeanddate.com/moon/

Модуль «Солнце» прошел аудит на диапазоне 2026-2035 годов для UTC. Расхождений не найдено. Эталон:

https://horoscopes.astro-seek.com/astrology-calendar-2035

Модуль «Затмения» тестировался на диапазоне столетия (2001-2100) — все 452 затмения были сопоставлены с каталогом NASA, но время максимума иногда отличается на несколько секунд, потому что разные астрономические модели немного по-разному определяют момент наибольшего затмения. Максимальное найденное расхождение составило около 10 секунд, что допустимо и не влияет на дату события.

NASA Eclipse Web Site — основной эталон:

* Солнечные затмения: https://eclipse.gsfc.nasa.gov/solar.html

* Лунные затмения: https://eclipse.gsfc.nasa.gov/lunar.html

Time and Date — независимая дополнительная сверка:

* Солнечные затмения: https://www.timeanddate.com/eclipse/

* Лунные затмения: https://www.timeanddate.com/eclipse/list.html

Модуль «Земля» (перигелий и афелий) тестировался на диапазоне столетия (2001-2100) в UTC. Эталоны:

US Naval Observatory (Astronomical Applications Department)

https://aa.usno.navy.mil/

https://aa.usno.navy.mil/data/

https://aa.usno.navy.mil/calculated/seasons

Дополнительная контрольная сверка отдельных событий выполнялась по данным Time and Date

https://www.timeanddate.com/astronomy/perihelion-aphelion-solstice.html

Модуль «Планеты» (элонгации Меркурия и Венеры) тестировался на диапазоне 2026-2035 годов. Эталоны:

In-The-Sky.org — Greatest Elongation

https://in-the-sky.org/article.php?term=greatest_elongation

Согласно описанию источника, расчеты выполнены на основе планетной эфемериды NASA DE440. Эталон охватывает период 2026-2035 и содержит все максимальные восточные и западные элонгации Меркурия и Венеры, включая дату, время и угловое расстояние от Солнца.

Модуль «Кометы» (перигелии комет) тестировался на диапазоне 2-х столетий (2001-2200), который содержит все прохождения перигелия для 15 поддерживаемых комет, включая дату и время перигелия в UTC, орбитальный период и параметры орбитального решения. Эталоны:

NASA/JPL Small-Body Database (SBDB)

https://ssd.jpl.nasa.gov/tools/sbdb_lookup.html

https://ssd-api.jpl.nasa.gov/doc/sbdb.html

Дополнительная контрольная сверка отдельных объектов выполнялась по данным NASA/JPL Horizons:

https://ssd.jpl.nasa.gov/horizons/

https://ssd-api.jpl.nasa.gov/doc/horizons.html

Модуль «Метеоры» тестировался на диапазоне 2026-2035 годов, который содержит даты максимумов активности основных ежегодных метеорных потоков, включая Персеиды, Геминиды, Квадрантиды, Лириды, Эта-Аквариды, Южные Дельта-Аквариды, Дракониды, Ориониды, Тауриды, Леониды, Урсиды и другие поддерживаемые потоки. Эталоны:

International Meteor Organization (IMO) — Meteor Shower Calendar

https://www.imo.net/resources/calendar/

Дополнительная контрольная сверка выполнялась по данным American Meteor Society (AMS):

https://www.amsmeteors.org/meteor-showers/meteor-shower-calendar/

Модуль «Шри-Ланка» работает по алгоритму, восстановленному из ланкийского календаря с помощью реверсивного инжиниринга. Даты, выданные нашим алгоритмом были проверены на официальных государственных календарях Шри-Ланки за все доступные нам 17 лет (209 Пойя) и совпали с эталоном на 100%. Однако, последнее не гарантирует абсолютно точного восстановления официального алгоритма, нигде в интернете нет ни его полного описания (есть частичные), ни программной реализации (календарь рассчитывается специалистами Шри-Ланки вручную, остальные источники просто копируют его из официального сайта). Другими словами, настоящий алгоритм неизвестен. Официальные календари Шри-Ланки используются нами только для аудита и тестов, а не как таблицы ручных override. Всё печально, друзья, если кто-то может помочь с получением алгоритма из официальных источников, то это бы решило проблему раз и навсегда. Эталоны:

* Department of Government Printing (официальные календари Шри-Ланки): https://documents.gov.lk/

* Ministry of Public Administration, Provincial Councils and Local Government (архивы государственных праздников и Poya Days): https://www.pubad.gov.lk/

Модуль «Таиланд» тестировался на диапазоне 2021-2031 годов. Расхождений не найдено. Эталоны:

* Office of National Office of Buddhism (ONAB):

https://www.onab.go.th/

* MyHora — тайский календарь с днями Wan Phra:

https://www.myhora.com/calendar/

* Splendid Moons — календарь лунных фаз и буддийских дней:

https://splendidmoons.github.io/

* Jhanarato — календарь Uposatha:

https://upalipali.org/Uposatha/Uposatha.html

* The Stock Exchange of Thailand (SET) — официальные праздники:

https://www.set.or.th/en/market/information/holiday

Модуль «Бирма» тестировался на периоде 2026-2035 годов относительно официальных источников правительства Мьянмы и календарного движка MMCal. Расхождений нет. Единственная аномалия: на официальном сайте Весак\Касон почему-то стоит на май, в то время как во всех остальных источниках он выпадает на апрель. Мы тоже сделали апрельский Касон.

Открытый код бирманских упосатх:

https://github.com/vpnry/upcal

Сами упосатхи:

https://vpnry.github.io/upcal/upcal_offline.html

Бирманские праздники на текущий год:

https://www.mofa.gov.mm/about-myanmar/public-holidays/

С открытым кодом на любой диапазон:

https://github.com/yan9a/mmcal

Модуль «Тибет» тестировался на диапазоне 2020-2035. Проверены все ежемесячные практики (8, 10, 15, 25, 29 и 30-й лунные дни), годовые праздники, сдвоенные месяцы, chad и lhag. Расхождений не найдено. Для верификации использовался Tibetan Buddhist Calendar Online, основанный на системе Phugpa и традиции Men-Tsee-Khang:

https://tibetanbuddhistcalendar.org

Подмодуль «Пугпа» прошел аудит по эталону TibAstro за период 2020-2035. В ходе проверки было подтверждено полное совпадение животного дня, мева и паркха. Единственное расхождение связано с тем, что разные тибетские календари используют разные правила обработки двойного лунного дня (лхаг): TibAstro на дни 18, 19 и 20 ноября 2025 года показывает последовательность 29-29-30 цеше жаг (29 лунный день является лхаг), а Tibetan Buddhist Calendar и наш движок: 29-30-30 (30 — лхаг). Поскольку оба варианта подтверждаются независимыми источниками, данное расхождение признано особенностью разных традиций и не влияет на работу остальных алгоритмов модуля. Эталоны:

https://tibetanbuddhistcalendar.org

https://www.tibastro.be/

Модуль «Китай» тестировался относительно официальных данных Hong Kong Observatory (HKO) на периоде 2021-2031. Алгоритм корректно обрабатывает преобразование григорианских и китайских лунных дат, високосные месяцы и все религиозные события модуля. Расхождений не обнаружено. Эталон:

https://www.hko.gov.hk/en/index.html

Модуль «Япония» прошел аудит на диапазоне 2026-2035 годов. Расхождений не обнаружено. Независимый эталон для сравнения не использовался, поскольку все события определяются фиксированными григорианскими датами либо рассчитываются на основе уже протестированного модуля «Солнце».

Модуль «Вьетнам» основан на национальном вьетнамском лунно-солнечном календаре Âm lịch (UTC+7). Для всех событий модуля получено полное совпадение с внешним эталоном: 436 из 436 событий, 0 расхождений. Корректность расчетов была проверена на диапазоне 2021-2035 годов по календарю Xem Lịch Âm:

https://www.xemlicham.com

Модуль «Непал» тестировался по официальному непальскому календарю Hamro Patro на диапазоне 2022-2026 годов. Все события production-модуля совпали с официальным эталоном. Основной источник эталона:

* Hamro Patro (официальный непальский календарь): https://english.hamropatro.com/

Для дополнительной проверки правил и соответствия праздников использовались:

* Buddha Purnima / Buddha Jayanti (Drik Panchang, Kathmandu): https://www.drikpanchang.com/festivals/buddha-purnima/buddha-purnima-date-time.html?geoname-id=1283240

* Nepal Sambat: https://nepalipatro.com.np/blog/en/nepal-sambat/

* Nepal Sambat (справочная информация): https://en.wikipedia.org/wiki/Nepal_Sambat

* Gunla: https://en.wikipedia.org/wiki/Gunla

Модуль «Индонезия» тестировался на диапазоне 2026-2035 лет. Эталон был собран с Bali Calendar (Pawukon Calendar), Bali Saka Calendar, официальный календарь правительства Индонезии, Hindu Dharma calendars Bali:

https://www.babadbali.com/kalender

https://www.baliprov.go.id

https://phdi.or.id

https://kemendikdasmen.go.id

Модуль «Индия (Север)» и «Индия (Юг)», а также некоторые индийские подмодули (Санкранти, Прадош Врат, Шани и Сомвати Амавасьи) тестировались на диапазоне 2026-2035 годов для трех городов: Киев, Москва и Нью-Дели. Расхождений не найдено. Эталон:

https://www.drikpanchang.com/

Подмодуль «Панчанга» тестировался для тех же локаций на промежутке 2026-2028 лет, только 3 года (1096 суток) потому что это ежедневная индийская астрология: 1096 × 3 города = 3288 дней. Проверялись титхи, накшатры, пакша и другие астрономические данные по эталонам Drik Panchang. Все совпало, за исключением одного пограничного случая:

Drik для Киева на 9 апреля 2026 выводит накшатра Мула до 06:18, а sunrise: 06:17. Есть два способа расчета момента восхода: по верхнему краю солнечного диска и по центру диска на истинном горизонте — между ними разница 1-3 минуты. Drik, похоже, считает первым методом, но мы выбрали второй, из-за этого расхождения:

обычный sunrise: 06:16:58 → Мула;

center-disc sunrise: 06:18:40 → Пурва Ашадха;

Переход произошел за 4.56 секунды до center-disc sunrise. То есть наш бот не ошибся математически, а честно заявил, что на center-disc sunrise накшатра уже следующая. Это не баг алгоритма накшатры, а микро-пограничное расхождение из-за разных точек восхода, поэтому мы решили так и оставить. Эталон:

https://www.drikpanchang.com/

Подмодуль «Вайшнава» тестировался на диапазоне 2026-2035 годов для трех городов: Киев, Москва, Нью-Дели. Эталоном «Гаудия Вайшнава» был выбран GCAL (gaurabda-calendar):

https://github.com/gopa810/gaurabda-calendar

А двух остальных сампрадай (как и остальных индийских подмодулей) — JR:

https://github.com/jyotisham/jyotisha

Подмодуль «Гаудия Экадаши» воспроизведен по открытому коду проекта Gaurabda Calendar (эталон ИСККОН) и прошел проверку на диапазоне 2026-2035 для Киева, Москвы и Нью-Дели. Все Экадаши, Маха-Двадаши и параны совпадают с эталоном с небольшими погрешностями, обусловленными разной астрономией. Как уже было сказано ранее, мы юзаем швейцарские эфемериды библиотеки Swiss Ephemeris, однако в проекте GCAL зашиты какие-то другие (хз какие, да и фиг с ними, всё равно у нас единая астрономия на весь проект и менять ее мы не намерены).

Найденные погрешности: расхождения границ параны до 3 минут, и разница в названии одного Маха-Двадаши в Киеве 5 января 2035 года: наш движок нарек ее Вьянджули, а GCAL — Унмилани. Случилась сия оказия из-за разницы в несколько секунд между границами титхи, которые пришлись как раз аккурат на локальный восход будь они неладны. В случае повторения подобного попадания границ на локальный рассвет названия событий могут опять не совпасть с эталонными. Но что поделать, это жизнь.

Тестирование на диапазоне 2026-2035 годов для трех городов (Киева, Москвы и Нью-Дели) показало значительные несоответствия между GCAL и ISKCON Ekadashi на Drik Panchang. Так что просьба не считать ошибкой расхождения между Гаудия Экадаши в Dharma Time и теми же событиями на сайте Drik Panchang. В нашем боте другой алгоритм. Наш выбор пал именно на GCAL из-за мнимой легкости реализации, которую обещало наличие открытого кода (кто же мог знать, что там другая астрономия блин). С другой стороны, Drik Panchang вообще никакими алгоритмами не делится, код не показывает и на письма с мольбами о помощи не отвечает (а молча зарабатывает на своем сайте, ну и фиг с ними, мы сбацаем свою панчангу с чатурангой и апсарами).

Возможно когда-нибудь мы реверсивным инжинирингом добудем и дриковский алгоритм для вайшнавских экадаши (тогда добавим в бот возможность выбора: GCAL или Drik), но, судя по всему, будет это нескоро. Напишите в комментах, нужны ли нам дриковские экадаши или гкаловских достаточно? И существенны ли расхождения между нашим движком и GCAL? Учитывайте, что различия между ними не влияют на даты постов или правила их соблюдения. Вот эталоны:

* GCAL-for-Windows (официальная реализация ISKCON)

https://github.com/gopaladasa/GCAL-for-Windows

* gaurabda-calendar (Python-порт GCAL)

https://github.com/gopa810/gaurabda-calendar

* gaurabda-js (JavaScript-порт)

https://github.com/gopa810/gaurabda-js

Подмодуль «Смарта Экадаши» воспроизведен по открытому коду проекта Jyotisha (JR) и протестирован на диапазоне 2026-2035 годов для Киева, Москвы и Нью-Дели. Все даты Экадаши, границы титхи, параны, Хари Васары, накшатры, раши и индийские лунные месяцы полностью совпадают с эталоном (JR). В отличие от Гаудия Экадаши, здесь нам удалось избежать расхождений. А всё потому что у них такая же астрономия как и у нас: Swiss Ephemeris.

Также как и в случае с GCAL, между JR и смарта экадаши на Drik Panchang есть расхождения, поэтому несовпадения между нашим ботом и календарем Drik не являются ошибками. Кроме того, для Мокшада Экадаши JR-проект создает еще одно событие «Вайкунтха Экадаши». Это просто другое название, принятое в некоторых вайшнавских традициях. У нас отображается только «Мокшада Экадаши», ради избегания дублей.

Эталон и технический ориентир:

https://github.com/jyotisham/jyotisha

Христианство

Модуль «Православие (старый стиль)» тестировался на периоде 1900-2099. Эталон:

https://calendar.lenacom.spb.ru/orthodox_calendar_2099

В источнике обнаружена ошибка: начало Рождественского поста указано как 28 декабря вместо 28 ноября. Эта дата была исключена из эталона и рассчитана отдельно по правилу модуля. Итоговый эталон содержит 3800 событий (19 событий × 200 лет) и прошёл QC-проверку без ошибок.

Модуль «Православие (новый стиль)» тестировался на диапазоне 1900-2099 годов. Переходящие праздники рассчитываются по той же пасхалии, что и в православном календаре старого стиля, а даты непереходящих праздников приведены к новоюлианскому календарю. Проверка эталона не выявила расхождений или внутренних ошибок.

Модуль «Католицизм» тестировался на диапазоне 1970-2199 годов (230 лет). Эталон собран из LitCal:

https://www.litcal.johnromanodorazio.com/

Благодарности

Выражается сердечная благодарность специалисту по тибетской астрологии Александру Хосмо за консультации по вопросам, связанным с реализацией модулей «Тибет» и «Пугпа». А также не меньшая благодарность Бханте Девамитте за ценные материалы о буддийских календарях Бирмы, Таиланда и Шри-Ланки. Спасибо большое Бханте Бодхирасе за консультации по вопросам календарной системы Гьялдува, предоставленные материалы и буддийские календари Шри-Ланки, которые значительно помогли в исследовании и реализации соответствующих алгоритмов в Dharma Time.

Особая благодарность программисту по имени Karthik Raman, одному из разработчиков Jyotisha (JR), который специально для нашего проекта перевел на английский и прислал некоторые первоисточники по панчанге, ранее существовавшие лишь на тамильском и санскрите. В знак благодарности авторам проектов GCAL, JR & Splendid Moons за публикацию открытого исходного кода, позволившего изучить и независимо реализовать используемые в Dharma Time алгоритмы, я с помощью Google AI-assistant сделала обзоры на них здесь:

https://vc.ru/id6021040

Вместо заключения

Если, скурив данный мануал, вы всё равно считаете, что в Dharma Time ошибка или просто видите расхождение с каким-то более аФтаритетным источником, то смело пишите в комменты, указывая:

1) Населенный пункт, выбранный вами в боте.

2) Багованный модуль (подмодуль или настройки, если есть).

3) Подробное описание ошибки со ссылкой на источник с которым не сходится, если таковой есть.

Разделение заслуг

В первую очередь бот создан чтобы поддержать последователей самых разных дхармических учений в их духовной практике. Пусть этот бот помогает духовным искателям постепенно улучшать дисциплину и поддерживать регулярную садхану ради блага всех живых существ. Пусть все кто прочитает это описание сорадуются тому что большое количество практикующих обретут поддержку на пути Дхармы и улучшат свою духовную практику. Пусть благая карма от создания этого бота будет разделена между всеми живыми существами.

Ссылка на бот: @dharma_time_bot

Или так: https://t.me/dharma_time_bot

Страничка проекта: https://tssrkt.github.io

Спасибо за чтение

Вернуться к книге