Subject: | Wrong sunset times around 21st March |
I have tried to print the sunset times for Paris in March.
And I noticed a hiccup on March 20, as if the Earth's rotation
was chaotic. Then I tried a few other locations and I obtained
som weird results. Here are the script and the result.
--------------------------
#!/usr/bin/perl -w
use strict;
#use lib qw/tmp/;
use DateTime;
use DateTime::Event::Sunrise;
coucher( 2.33, 48.83, 1); # Paris
coucher(92.33, 48.83, 0); # sun never rises!
sub coucher {
my ($lon, $lat, $iter) = @_;
print "longitude $lon, latitude $lat, iter $iter\n";
my $coucher = DateTime::Event::Sunrise->sunset(longitude => $lon,
latitude => $lat,
iteration => $iter,
);
foreach (17..23) {
my $day = DateTime->new(year => 2008, month => 3, day => $_,
time_zone => 'UTC', locale => 'fr');
print "$_ March : sunset ",
$coucher->next($day)->strftime("%H:%M:%S\n");
}
}
----------------------------
longitude 2.33, latitude 48.83, iter 1
17 March : sunset 17:58:02
18 March : sunset 17:59:15
19 March : sunset 17:59:53
20 March : sunset 18:52:15
21 March : sunset 18:06:28
22 March : sunset 18:07:05
23 March : sunset 18:08:18
longitude 92.33, latitude 48.83, iter 0
17 March : sunset 11:56:40
18 March : sunset 11:58:02
19 March : sunset 11:59:15
20 March : sunset 11:59:53
Sun never rises!!
at /home/j2n/perl/lib/site_perl/5.8.8/DateTime/Set.pm line 240
21 March : sunset 05:58:07
22 March : sunset 12:06:28
23 March : sunset 12:07:05
--------------------------------
Then, I looked for Paul Schlyter's code. I found that you
made a mistake, confusing the variables for the Sun's right ascension
and for its distance from Earth. Here is the patch with
the bugfix.
I had to change the test data in the 01basic.t file.
Did you get these data from an external source
(almanach, ephemeris, C-wrapper to Schlyter's code)?
Or did you simply declare that the values on your
system should be equal to the values on anyone else's
machine?
By the way, I have included also fixes for ticket 7605.
Even if it is irrelevant, here is perl -v:
Even if it is irrelevant, here is perl -v and uname -a:
This is perl, v5.8.8 built for i686-linux
Copyright 1987-2006, Larry Wall
Perl may be copied only under the terms of either the Artistic License
or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
Linux localhost.localdomain 2.6.11-1.1369_FC4 #1 Thu Jun 2 22:55:56 EDT
2005 i686 athlon i386 GNU/Linux
Subject: | dt-e-sunrise.patch |
Message body is not shown because it is too large.