Раз уж у нас имеется калькулятор про Солнце - Восход и закат солнца, то я подумал, что неплохо бы сделать калькулятор и про Луну.
Ну а что вспоминает человек, когда слышит слово "Луна" - то, что у нее есть фазы. И, как правило, именно в полнолуние оборотень превращается в волка. Значит будем искать фазу Луны.
Как оказалось, довольно много калькуляторов для расчета фазы Луны, которые мне удалось найти в интернете, используют алгоритм, опубликованный Стефаном Шмиттом (Stephen R. Schmitt). Алгоритм описывается, например, здесь.
Идея алгоритма необычайно проста (видимо, потому его все и используют). Заданная дата переводится в Юлианские дни (вот они и пригодились), после чего вычисляется число дней, прошедшее с магической юлианской даты 2451550.1 Это 14:24 6 января 2000 года - и я подозреваю, что это просто начало очередного лунного месяца на момент разработки алгоритма. Полученная разница в днях делится на продолжительность лунного месяца - 29.503588853, и остаток от деления позволяет определить возраст луны. Где возраст, там и фаза.
Что интересно - у нас различают только четыре положения Луны - новолуние, первая четверть, полнолуние, третья четверть, тогда как в англоязычной литературе промежутки между этими четырьмя положениями тоже имеют свои названия. Насколько я понял, для них нет еще устоявшихся терминов, поэтому я приведу их здесь в английском варианте.
Промежуток между новолунием и первой четвертью называется Waxing Crescent - если дословно, то "растущий полумесяц" Промежуток между первой четвертью и полнолунием называется Waxing Gibbous - "растущий горб" Промежуток между полнолунием и третьей четвертью называется Waning Gibbous - "убывающий горб" Промежуток между третьей четвертью и новолунием называется Waning Crescent - "убывающий полумесяц"
В калькулятор вводим дату, расчет ведется на 00:00 этой даты по гринвичскому времени.