Formula applied
The exact method behind this answer
CalculationTime keeps the method visible so the number can be checked instead of blindly trusted.
observer = Astronomy.Observer(latitude, longitude, elevationMetres). t0 = local civil midnight converted to UTC. Moonrise = SearchRiseSet(Moon, observer, +1, t0, 1.05). Moonset = SearchRiseSet(Moon, observer, -1, t0, 1.05). Lunar phase context = MoonPhase(t0).- Apply the formulaobserver = Astronomy.Observer(latitude, longitude, elevationMetres). t0 = local civil midnight converted to UTC. Moonrise = SearchRiseSet(Moon, observer, +1, t0, 1.05). Moonset = SearchRiseSet(Moon, observer, -1, t0, 1.05). Lunar phase context = MoonPhase(t0).2026-07-16 08:20 (UTC+10) moonrise · 2026-07-16 19:10 (UTC+10) moonsetAstronomy Engine SearchRiseSet(Moon) for -33.9°, 151.2°, 0 m. UTC instants: moonrise 2026-07-15 22:20 UTC, moonset 2026-07-16 09:10 UTC. Moon phase at local midnight: Waxing Crescent, 1.34 days engine-derived equivalent.