Несмотря на то, что у меня нет кода для вас, я могу предоставить информацию, которая может дать вам некоторый прогресс.
Во-первых, юлианская дата имеет смысл в качестве основы для расчета лунных и лунно-солнечных дат, потому что она тикает в секундах по СИкак измерено на геоиде.Таким образом, формулы для прогнозирования количества секунд SI между этими событиями могут быть легко коррелированы.http://en.wikipedia.org/wiki/Julian_day
Лунисолярные праздники и планирование еврейского календаря в целом зависят от соотношения фазы луны и солнечного дня недели.В еврейских и исламских календарях день начинается на закате.Так что, если луна достигнет 100% фазы около заката, это может повлиять на то, когда наступят праздники и как календарь запланирован на будущее.Но во сколько закат?Это зависит не только от долготы, но и от широты наблюдения.Поэтому вы должны планировать лунно-солнечные календари и праздники из определенного места на геоиде.http://en.wikipedia.org/wiki/Jewish_calendar#Principles
Эти факторы привели к использованию упрощенных церковных систем, из которых несколько широко используются в мире, для «вычисления» даты Пасхи, используемого вместо прямого астрономического наблюдения.http://en.wikipedia.org/wiki/Computus
Поэтому требования традиционного исламского календаря, определяемые в терминах астрономических наблюдений, включая закат, должны быть привязаны к определенному месту на геоиде, если вы собираетесь прогнозировать даты праздников и интервалы времени.в СИ секунд бесконечно в прошлое или будущее.Это может быть причиной замечаний о «наблюдениях в Северной Америке» и ошибок в датах будущих праздников, о которых вы упомянули;если наблюдение фазы луны против солнечного дня будет производиться в Северной Америке, а не в Мекке, календарь будет планироваться совсем по-другому.
Один неизбежный и непредсказуемый фактор в предсказании любой астрономической эфемеры и, следовательно, лунногоили лунно-солнечный календарь событий, это изменение вращения Земли во времени.Существует простая формула для оценки этого изменения, но фактическая измеряется с использованием сигналов от очень далеких небесных объектов.http://en.wikipedia.org/wiki/Leap_second Из-за этой неопределенности и из-за чувствительности некоторых календарей к корреляции между лунной фазой и солнечными эфемеридами всегда есть горизонт (далекое?) Будущее этих календарей, после которого последовательность датнепостижимо.
PyEphem выглядит как очень классный пакет, и я сам проверю.Если его встроенная логика не отвечает вашим потребностям, вы довольно долго решаете, как предсказывать небесные события на неопределенный срок в будущем.Вот вам вкус: http://en.wikipedia.org/wiki/Precession_of_the_equinoxes#Values
Опять же, у меня нет конкретного кода для вас, но я надеюсь, что эта информация не повторяет того, что вы уже знаете, и полезна для вас.