|
Description:
|
Calculates the dates marking the Easter and Christmas season,
all full and new moons period of a year (starting in any month), sunrise
and sunset times, and Moon phases. Dates are Gregorian calendar dates
on or after October 15, 1582 and (proleptic) Julian dates before. Years
before 1 BC are to be entered as negative years, the year 1 BC is
considered as year zero. (So, for example, 2 BC is year -1.).
As of version 2.2, I am using the ISO Date format, which is YYYY-MM-DD
Some calculations may not be correct, since I used several programs,
and I am in the progress of cleaning up minor inconsistencies.
I plan to improve on this program later, but it
is fairly enjoyable in its current state.
Sources and recommended reading:
- The core routines are based on BASIC programs published in the journal
Astronomical Computing, Sky and
Telescope ( the address used was
www.skypub.com/resources/software/basic/basic.html, the new
address seems to be skyandtelescope.com/resources/software/article_326_1.asp).
-
Most of the above cited routines used formulas from the book
"Astronomical Formulae for Calculators" by Jean Meeus. (Willmann-Bell, 1982). I have
purchased this book, and I am in the progress of comparing the BASIC
scripts against the book's instructions.
- An earlier version of this program
used a formula to convert Julian day numbers that I found on a page by
Peter Mayer on Julian Day numbers. The same author has many other
great pages and links on Calendar
Studies.
- I ended up writing my Julian day number conversion routine, that
works for even negative Julian day numbers, but determining the
month and day after having calculated the year uses an idea I found in the date algorithm
listed on Peter
Baum's math
page.
- The current date of Easter formula used comes from the
FAQ of the
sci.astro newsgroup. Ash Wednesday and Pentecost are
calculated by converting the date of Easter to a Julian day number and
adding or subtracting the correct number of days. Christmas Day is
always on December 25, and the first Sunday of Advent is determined by
using the Julian day number of Easter to find the fourth Sunday before
Christmas Day.
- Moon phase pictures were provided by István Totka.
|
|
Updates:
|
- Version 2.3a
-
- When I fixed the issue of truncated text in version 2.3, I typed
"sun down all day" instead of "sun up all day". This
is now corrected.
- Version 2.3
-
- Because of the use of string variables, some of the text was
truncated in the sunrise/sunset routine. This is now fixed.
- Changed the exit button to [ESC] from X.
- After any intervention at the "Settings" menu, the program
now automatically returns to the main menu.
- Saving or erasing latitude, longitude and local time is now visible.
- Version 2.2
-
- Fixed yet another improper double use of the same variable:
affecting this time the moonrise and moonset calculations. Hopefully
this was the last such issue!
- Swithed to ISO date format, which looks better, when displaying
negative years.
- István Totka provided me with moon phase pictures.
- Version 2.1
-
- Added dates for Ash Wednesday, Pentecost, first Sunday of Advent,
and Christmas.
- Purchased "Astronomical Formulae for
Calculators" by Jean Meeus and started checking the components used
from www.skypub.com/resources/software/basic/basic.html. (See updated
address above.) Done checking (and correcting) the component calculating
the new and full moons.
- It is now possible to specify the month from which the list of new
and full moons is started.
- Wrote my own conversion routines to and from Julian days,
which should now work even for negative years. (By the way, 1BC is year 0, 2 BC
is year -1, and so on.)
- Discovered that the same variable name was used
in the new and full moon module and the Julian day conversion module
and corrected this mistake. Added hours and minutes for the full and new
moon times. For the year 2002, the full and new moon times are now at
most a few minutes off from the output of the Stellafane
Moon Phase Calculator, a JavaScript implementation of the same code.
- Version 1a
- Interface improvements, following the advice of Dag Wood.
|