David E. Wheeler wrote:
>        return $date lt '03-21' ? 'winter'
>             : $date lt '06-21' ? 'spring'

Northern hemisphere chauvinism.

Aside from the hemisphere issue, the code is also wrong for tropical
latitudes, where the four-season system doesn't apply.  If you're trying
to answer a user's question of "what season is it?" then you need a lot
more flexibility.  Even within the four-season system, people draw the
boundaries in different places.  That's inevitable when trying to impose
sharp distinctions on a system that actually has a fuzzy continuum.

>Since seasons can sometimes change on the 22nd instead of the 21st,  
>this isn't quite right.

Sounds like you're looking for the equinox and solstice dates.  I don't
see any CPAN module providing this, on search.cpan.org.  I guess
that makes it your job to write one.  Ideally you'd want to work from
Astronomical Algorithms <http://www.willbell.com/math/mc1.htm>.  Google
for "equinox calculation" to find several lower-precision algorithms in
various programming languages.

-zefram

Reply via email to