Уважаемый ilal, на странице
http://www.moonphasecalendar.com/questions.htm приведена формула (дает моменты лунных фаз с точностью до 12 часов):
Ф = 0.20439731 + t x 0.03386319269 + t^2 x 0.0301 x 10^{-14}
t - время в сутках с момента 2001 января 1, 0 ч всемирного времени UTC
После расчета нужно отбросить от Ф целую часть, оставить только дробную:
Ф = 0 - новолуние
Ф = 0.25 - первая четверть
Ф = 0.5 -
полнолуниеФ = 0.75 - последняя четверть.
Число суток с 01.01.2001 проще всего подсчитать при помощи юлианских дней (JD,
http://www.astronet.ru/db/msg/1173749).
01.01.2001 - JD = 2451911
Удобный способ расчета юлианских дней на любую дату - на странице
http://m31.spb.ru/astronomy/time/julianday.shtmПри такой формуле фаза Луны +_12 часов, если нужно точнее, все сильно усложняется. Нужно брать громоздкие формулы для эклиптических долгот Солнца и Луны, например, из Астрономического Ежегодника. Там уже учитываются все эффекты, в том числе эллиптичность орбит Земли и Луны, а также движение линии узлов лунной орбиты.