Расчет лунных/луно-солнечных праздников в PythonPython

Программы на Python
Ответить
Anonymous
 Расчет лунных/луно-солнечных праздников в Python

Сообщение Anonymous »

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

Я гуглил до тошноты и добился некоторого прогресса, но не смог закончить. Если у кого-нибудь есть пример кода на современном языке, описывающий их расчет, я был бы очень признателен. Я бы предпочел Python или один из языков C*.

Мой прогресс на данный момент:

Завершено:
  • Пасха: можно найти с помощью python-dateutil.
  • Ханукку и другие праздники еврейского календаря можно найти с помощью Holiday.py из python date_util*s* .
Закрыть:
  • Рамадан: date_utils имеет функцию исламского календаря в модуле, которую я попробовал и получил в основном правильные, но не совсем точные результаты. (Он хочет преобразовать все в юлианские даты и обратно, я не знаю почему).

Код: Выделить всё

import calendar_util as cu        # from date utils; no jokes from .br
#
# year = int(sys.argv1) 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 января совпадает с какой-либо годовой датой. Исламские годы короче и поэтому каждый год наступают раньше.

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

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

Подробнее здесь: https://stackoverflow.com/questions/650 ... -in-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»