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!


The intelligent reader will judge for himself. Without examining the facts fully and fairly, there is no way of knowing whether vox populi is really vox dei, or merely vox asinorum. — Cyrus H. Gordon

In reply to Re: Is there a module for determining dates of Astronomical Seasons? by idsfa
in thread Is there a module for determining dates of Astronomical Seasons? by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.