программа должна считать лунную фазу и время для восхода и транзита (время прохождения через линию зенита) на каждый день до конца текущего года начиная с даты запуска. причем выводятся только дата/время которые попадают в следующие фазовые интервалы. 1) Ф= 0,15 - 0,25 2) Ф= 0,65 - 0,75 3) Ф= 0,85 - 0,75 4) Ф= 0,35 - 0,25 требуется вывести по 2 дня на каждый интервал. получается по 8 дней на месяц. в тех случаях, когда два целых дня "не влезают" в фазовый интервал, необходимо брать один день из этого интервала, и один день раньше него. встречаются дни без восхода. в этом случае выводится местное время с 7:00 до 9:00 утра с примечанием "солнечный цикл". остальные показатели времени выводятся следующим образом. к расчетному времени восхода прибавляется 15-20 минут таким образом чтобы результат с точностью до 10 минут в большую сторону сторону округлился. пример, восход в 8:32 получили, значит выводим значение 8:50. для времени транзита наоборот отнимаем 10-15 минут с округленим в меньшую сторону до ближайшего десятка минут. на входе задаются координаты местности: широта (северная или южная) и долгота (западная или восточная) в формате градусы:минуты:секунды а также высота над уровнем моря опционально (по умолчанию равна 0) и часовой пояс в формате UTC ± количество часов, вместе с чекбоксом учета зимнего времени. найден модуль который якобы считает и фазу и восход и транзит но почему-то врёт на десятки минут по сравнению с обычными лунными календарями:
http://www.hoerstemeier.com/moon.htm - возможно его алгоритм можно скорректировать. эталонный календарь для тестов для московских координат находится во вложенном файле.