Astro-MoonPhase
view release on metacpan or search on metacpan
MoonPhase.pm view on Meta::CPAN
New Moon = Wed Jun 24 06:51:47 1998
First quarter = Wed Jul 1 21:42:19 1998
Full moon = Thu Jul 9 19:02:47 1998
Last quarter = Thu Jul 16 18:15:18 1998
New Moon = Thu Jul 23 16:45:01 1998
=head2 phaselist()
($phase, @times) = phaselist($start, $stop);
Finds times of all phases of the moon which occur on or after
C<$start> but before C<$stop>. Both the arguments and the return
values are expressed as seconds since 1970 (like the C<time> function
returns).
C<$phase> is an integer indicating the phase of the moon at
C<$times[0]>, as shown in this table:
0 New Moon
1 First quarter
2 Full Moon
3 Last quarter
The remaining values in C<@times> indicate subsequent phases of the
moon (in ascending order by time). If there are no phases of the moon
between C<$start> and C<$stop>, C<phaselist> returns the empty list.
Example:
@name = ("New Moon", "First quarter", "Full moon", "Last quarter");
($phase, @times) = phaselist($start, $stop);
while (@times) {
printf "%-14s= %s\n", $name[$phase], scalar localtime shift @times;
$phase = ($phase + 1) % 4;
}
could produce the same output as the C<phasehunt> example above (given
the appropriate start & stop times).
=head1 ABOUT THE ALGORITHMS
The algorithms used in this program to calculate the positions of Sun and
Moon as seen from the Earth are given in the book I<Practical Astronomy
With Your Calculator> by B<Peter Duffett-Smith, Second Edition,
Cambridge University Press, 1981>. Ignore the word "Calculator" in the
title; this is an essential reference if you're interested in
developing software which calculates planetary positions, orbits,
eclipses, and the like. If you're interested in pursuing such
programming, you should also obtain:
I<Astronomical Formulae for Calculators> by B<Jean Meeus, Third Edition,
Willmann-Bell, 1985>. A must-have.
I<Planetary Programs and Tables from -4000 to +2800> by B<Pierre
Bretagnon and Jean-Louis Simon, Willmann-Bell, 1986>. If you want the
utmost (outside of JPL) accuracy for the planets, it's here.
I<Celestial BASIC> by B<Eric Burgess, Revised Edition, Sybex, 1985>. Very
cookbook oriented, and many of the algorithms are hard to dig out of
the turgid BASIC code, but you'll probably want it anyway.
Many of these references can be obtained from Willmann-Bell, P.O. Box
35025, Richmond, VA 23235, USA. Phone: (804) 320-7016. In addition
to their own publications, they stock most of the standard references
for mathematical and positional astronomy.
=head1 LICENCE
This program is in the public domain: "Do what thou wilt shall be the
whole of the law".
=head1 AUTHORS
The moontool.c Release 2.0:
A Moon for the Sun
Designed and implemented by John Walker in December 1987,
revised and updated in February of 1988.
Initial Perl transcription:
Raino Pikkarainen, 1998
raino.pikkarainen@saunalahti.fi
The moontool.c Release 2.4:
Major enhancements by Ron Hitchens, 1989
Revisions:
Brett Hamilton http://simple.be/
Bug fix, 2003
Second transcription and bugfixes, 2004
Christopher J. Madsen http://www.cjmweb.net/
Added phaselist function, March 2007
( run in 1.728 second using v1.01-cache-2.11-cpan-ceb78f64989 )