Алгоритм Шри-Ланки
Автор: Ada KingВ рамках работы над проектом Dharma Time мы реализуем алгоритм расчета календарей различных буддийских традиций. Одним из самых сложных модулей неожиданно оказался календарь Пойя-дней Шри-Ланки. На первый взгляд всё просто: даты Пойя связаны с полнолуниями и каждый год публикуются правительством. Однако тестирование описанного в интернете алгоритма показало что он не работает.
Тогда мы собрали эталонный датасет из государственных публикаций Шри-Ланки и сформировали локальный архив дат Пойя. На данный момент у нас есть коллекция Пойя-дней за следующие годы:
* 2003
* 2004 (Adhi Esala)
* 2005
* 2006
* 2009 (13 Poya, второй Duruthu)
* 2011
* 2012 (Adhi Binara)
* 2013
* 2014
* 2016
* 2017
* 2021
* 2022
* 2023 (Adhi Esala)
* 2024
* 2025
* 2026 (Adhi Poson)
Всего:
* 17 лет официальных данных
* 209 дат Пойя
Эти данные используются как эталон для аудита, а не для хардкодинга.
Реверсивным инжинирингом мы нашли модель, которая воспроизводит 209 из 209 официальных дат:
1. Рассчитывается момент начала Пурнима титхи.
2. Время переводится в часовой пояс Asia/Colombo.
3. Если начало Пурнима титхи происходит до 18:01, Пойя назначается на текущий день.
4. Если начало происходит после 18:01, Пойя переносится на следующий день.
Другими словами, нет никаких расхождений между тем что выдает наш алгоритм и датами из официальных источников (209 Пойя за 17 лет) и, казалось бы, на этом следует успокоиться.
Но! Мы не нашли полного описания алгоритма и не знаем:
* действительно ли используется именно начало Пурнима титхи;
* почему граничное время оказывается близким к 18:01;
* связано ли это с монастырскими правилами, солнцем или местной системой деления суток;
* существует ли официальное описание алгоритма, используемого Календарным комитетом Шри-Ланки;
* как определяется вставной месяц (Adhi Esala, Adhi Binara, Adhi Poson);
* есть ли какой-то документ, регламентирующий этот процесс.
Мы ищем любую информацию.
Если вы:
* знакомы с работой календарного комитета Шри-Ланки;
* являетесь исследователем буддийских календарей;
* работаете с сингальскими астрономическими альманахами;
* знаете о существовании официальных инструкций или научных публикаций по этой теме;
* можете объяснить механизм появления Adhi Poya;
* знаете, почему используется именно такое правило выбора даты;
пожалуйста, свяжитесь с нами.
Мы пытаемся не захардкодить даты, а понять и реализовать алгоритм дней Пойя. Если окажется, что наша модель полностью соответствует официальной, значит это первый алгоритмический и открыто документированный модуль Пойя дат Шри-Ланки. Так что может мы уже и молодцы, а может еще нет. Мы хз. Спасибо всем за внимание.