Вычисление лунных / лунносольных праздников в python

Какие-нибудь календарные орехи здесь? Я искал информацию о том, как рассчитать праздники текущего года, которые происходят нерегулярно в Григорианском календаре. Обычно это происходит потому, что праздник основан на более раннем лунном календаре.

У меня был googled ad nauseum и сделал некоторый прогресс, но он не смог закончить. Если у кого-нибудь есть образец кода на современном языке, который описывает их расчет, я был бы очень благодарен. Я бы предпочел питон или один из языков C *.

Мой прогресс пока:

Полное:

  • Пасха: можно найти с помощью python-dateutil .
  • Хануки и другие календарные праздники иврита можно найти, используя holiday.py from python date_util * s *.

Закрыть:

  • Рамадан: date_utils имеет функцию исламского календаря в модуле, который я пробовал и получаю в основном правильные, но не совсем точные результаты. (Он хочет преобразовать все в датировку и из юлианских дат, я не уверен, почему).

import calendar_util as cu # from date utils; no jokes from .br # # year = int(sys.argv 1 ) or datetime.now().year tj = cu.gregorian_to_jd(year, 1, 1) # this year in julian ti = cu.jd_to_islamic(tj) # this year in islamic cal rj = cu.islamic_to_jd(ti[0], 9, 1) # first day of ramadan in julian # print cu.jd_to_gregorian(rj) # first day of ramadan in greg # output: (2011, 8, 1) # correct 

Я получаю результаты один раз в 2014 году, 2016, как подтвердил этот сайт , хотя в нем упоминается «североамериканские наблюдения», немного расплывчатые по моему вкусу. Понадобились бы указатели, чтобы повысить точность, например, если Ян 1 попадает в годовую дату отсечения. Исламские годы короче и поэтому прибывают с каждым годом.

Nada:

  • Китайский Новый год: я не нашел ничего, кроме этой дискуссии, где ответ не раскрывается.

К кредиту SO я нашел ссылку на эту книгу за 30 долларов, но предпочел бы не платить и не копать столько для нескольких строк кода. В обсуждении Amazon в нем упоминается, что все процедуры находятся в календаре Emacs. Однако я даже не устанавливал Emacs, поэтому, если это единственный доступный код, мы надеемся, что кто-то может помочь мне выкопать его и упростить, чтобы дать мне Ramadan / Chinese NY в текущем году.

Не уверен, что это полезно здесь, но события солнца и луны доступны через pyephem , которые я уже использую. Возможно, он также может быть полезен.

One Solution collect form web for “Вычисление лунных / лунносольных праздников в python”

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

Во-первых, Julian Date имеет смысл в качестве основы для расчета лунных и лунисолярных дат, потому что он тикает в 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

Опять же, у меня нет специального кода для вас, но я надеюсь, что эта информация не повторяет то, что вы уже знаете, и вам полезна.

  • Python: Преобразование из `datetime.datetime` в` time.time`
  •  
    Interesting Posts for Van-Lav

    Передача параметра в задание на ткань

    Шрифт Python Шестнадцатеричный

    Ошибка «ValueError: не может форматировать даты на ранней стадии» на одном ПК, работает на других

    Как найти распределение вероятности и параметры для реальных данных? (Python 3)

    Получить данные из метатегов с помощью BeautifulSoup

    скрипт python или bash для передачи всех файлов в папку в java-командную строку

    re.split не работает должным образом со строкой, поступающей из ячейки excel

    Может ли задержка выполнения команд в Python задерживаться?

    Получить цвет ячеек из .xlsx

    Изменить часовой пояс для объекта Date Python

    Как использовать транспорты inproc и ipc Zeromq?

    Приложение Django работает нормально, но появляется предупреждающее сообщение TEMPLATE_ *

    Есть ли простой способ рассортировать функцию python (или иначе сериализовать его код)?

    Как установить poppler в ubuntu 15.04?

    Есть ли фильтр шаблонов Django, который обрабатывает «… больше», и когда вы нажимаете на него, он показывает больше текста?

    Python - лучший язык программирования в мире.