View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.programming
Chuck[_11_] Chuck[_11_] is offline
external usenet poster
 
Posts: 58
Default Calculate phases of the moon

On Fri, 27 Mar 2009 09:14:58 -0400, "Bernie Deitrick" <deitbe @ consumer dot
org wrote:

Thank you.
I'll spend some time on it later today.

Chuck


I don't think that the formula calculates anything about the full moon - it is most likely that the
pattern of Easter Sundays fit some other discernable pattern (which I certainly cannot figure out).
But setting one full moon should be able to predict full moons many years into the future or past -
with a slight modification, the code correctly return the moon dates in 1901.

From the same contest that gave that function:

=TRUNC(DATE(J,7,-CODE(MID("NYdQ\JT_LWbOZeR]KU`",MOD(J,19)+1,1)))/7)*7+8

where J is the year...

But this VBA Function may give you a better idea of how the math is done:

Function EASTER(Yr As Integer) As Long

Dim Century As Integer
Dim Sunday As Integer
Dim Epact As Integer
Dim Golden As Integer
Dim LeapDayCorrection As Integer
Dim SynchWithMoon As Integer
Dim N As Integer

Golden = (Yr Mod 19) + 1
Century = Yr \ 100 + 1
LeapDayCorrection = 3 * Century \ 4 - 12
SynchWithMoon = (8 * Century + 5) \ 25 - 5
Sunday = 5 * Yr \ 4 - LeapDayCorrection - 10
Epact = (11 * Golden + 20 + SynchWithMoon - LeapDayCorrection) Mod 30
If Epact < 0 Then Epact = Epact + 30
If (Epact = 25 And Golden 11) Or Epact = 24 Then Epact = Epact + 1
N = 44 - Epact
If N < 21 Then N = N + 30
N = N + 7 - ((Sunday + N) Mod 7)
EASTER = DateSerial(Yr, 3, N)

End Function


HTH,
Bernie
MS Excel MVP


"Chuck" wrote in message ...
On Thu, 26 Mar 2009 08:50:59 -0400, "Bernie Deitrick" <deitbe @ consumer dot
org wrote:

Burnie,

I have an equation that accepts an input of a year (2009) and from this single
input it calculates the Month and Day for Easter of that year.

=FLOOR("5/"&DAY(MINUTE(YEAR({year})/38)/2+56)&"/"&YEAR({year}),7)-34

It is not my equation. It is something I found on the internet a fair number
of years ago. Since Easter is the first Sunday after the first full moon on or
after the Vernal Equinox (March 21), the equation some how calculates the date
for at least one full moon. I've tried to 'pull out' that full moon date. But
I'm just not smart enough.. If the date of that full moon can be had from a
single equation, that date can be the reference date to calculate full moons
for the rest of the year using you subroutine.

--
Chuck

Chuck,

There is a page at the Naval Observatory:

http://aa.usno.navy.mil/data/docs/MoonPhase.php#y2009

I just picked two from early this year, and adjusted UTC to EST.

HTH,
Bernie
MS Excel MVP