in reply to Is there a module for determining dates of Astronomical Seasons?
No, all of the above are dead wrong*. Even in the Gregorian calendar, the dates vary.
The Astronomical definitions of the solstices and equinoxes are when the sun's path through the sky reaches its most extreme (northward or southward) and when it crosses over the equator (north- or south-going). Your physical location on the planet is irrelevant to the discussion. You would only care about latitude for the purposes of differentiating spring & summer from fall & winter.
See Solstice and Equinox for more links and information.
If you need to know exactly when the season changes, you want to use DateTime::Event::SolarTerm:
use DateTime::Event::SolarTerm qw(WINTER_SOLSTICE); my $dt0 = DateTime->new(...); my $winter_solstice = DateTime::Event::SolarTerm->next_term_at( datetime => $dt0, longitude => WINTER_SOLSTICE );
Note that the equinoxes are not defined as constants, but their solar longitudes are 0 and 180. Which is which is left as an exercise for the student.
* Yay! I finally get some use out of eleven years of (Astro)physics grad school!
|
|---|