Rand Stats

Astro::Sunrise

zef:tbrowder

Actions Status Actions Status Actions Status

NAME

Astro::Sunrise - Calculate sunrise/sunset for a date and location

SYNOPSIS

$ cat ./examples/example.raku
#!/usr/bin/env raku

use lib <./lib ../lib>;
use Astro::Sunrise;
use Astro::Location;

# use a location in './t/tests.dat':
#    Amsterdam, Netherlands 52 22 N 4 53 E sunrise: 03:16 sunset: 20:09
my $loc = Location.new: :city<Amsterdam>, :state(''),
                        :country<NL>,
                        :lat(52+22/60),
                        :lon(4+53/60),
                        :timezone<Europe/Amsterdam>, # from Wikipedia
                        :tz(+1),                     # from Wikipedia
                        ;

# use the date from the test file '/t/01basic.t'
my $year  = 2003;
my $month = 6;
my $day   = 21;

# Note positional args, be careful!  A list of two DateTime objects
# are returned.  The tz value should NOT be applied as an input when
# testing for sunrise/sunset times using the original test data.
my ($rise, $set) = sunrise $year, $month, $day,
                       $loc.lon, $loc.lat;
# Output times as
my $sunrise = sprintf '%02d%02dZ', $rise.hour, $rise.minute;
my $sunset  = sprintf '%02d%02dZ', $set.hour, $set.minute;
say $sunrise; # expected: 0316Z
say $sunset;  # expected: 2009Z

Executing the code yields:

0316Z
2009Z

as expected.

AUTHOR

The original author was the late Jonathon Scott Duff (aka @perlpilot) who first published the module on January 6, 2016.

The module was forked from the original repository at https://github.com/perlpilot/p6-Astro-Sunrise to the Raku community modules repository https://github.com/raku-community-modules/Astro-Sunrise by @lizmat on November 26, 2020.

Some changes were made by Tom Browder (aka @tbrowder, tbrowder@acm.org) who is currently reponsible for any bugs or modifications.

COPYRIGHT AND LICENSE

© 2020 Raku.org

© 2023 Tom Browder

This library is free software; you may redistribute it or modify it under the Artistic License 2.0.