The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Date::ManipX::Almanac::Lang - Language support for Date::ManipX::Almanac

SYNOPSIS

The user does not directly interface with this module.

DESCRIPTION

Date::ManipX::Almanac supports (in principal) multiple languages, using a model similar to the Date::Manip model. But the language modules have been given more functionality, since that implementation minimized the need for access to Date::Manip internals.

This module and its language-specific subclasses recognize time specifications that represent almanac events, and ultimately (after the superclass completes the parse) computes the time of the desired event.

ASTRONOMICAL BODIES

Subclasses are expected to recognize astronomical bodies by their name in the implemented language. For Astro::Coord::ECI subclasses that represent specific bodies, a hard-coded name in the relevant language is expected. For other classes, the 'name' attribute is used as a last-ditch, and probably-unsatisfactory solution.

Specifically, subclasses are expected to support language-specific names for the following classes:

 Astro::Coord::ECI::Sun
 Astro::Coord::ECI::Moon
 Astro::Coord::ECI::VSOP87D::Sun
 Astro::Coord::ECI::VSOP87D::Mercury
 Astro::Coord::ECI::VSOP87D::Venus
 Astro::Coord::ECI::VSOP87D::Mars
 Astro::Coord::ECI::VSOP87D::Jupiter
 Astro::Coord::ECI::VSOP87D::Saturn
 Astro::Coord::ECI::VSOP87D::Uranus
 Astro::Coord::ECI::VSOP87D::Neptune

ALMANAC EVENTS

This section describes the events that subclasses are expected to support, but not the language-specific names of these events. It is expected that the event names given will work in English, but others may also work. See the individual language modules for details.

For the purpose of discussion, events are divided into two classes. General Events are those that apply to any astronomical body, and which therefore require the specification of the body they apply to. Specific Events only apply to one body, and therefore do not require the naming of a specific body.

General Events

General events must be immediately preceded or immediately followed by the name of the astronomical body they apply to.

The following general events should be recognized by any subclass:

Culminates

This is defined as the moment when the body appears highest in the sky.

Rise

This is defined as the moment when the upper limb of the body appears above the horizon, after correcting for atmospheric refraction.

Set

This is defined as the moment when the upper limb of the body disappears below the horizon, after correcting for atmospheric refraction.

Specific Events

The following specific events should be recognized by any subclass:

Phases of the Moon
 new
 first
 full
 last

This implies the Moon. It computes the first occurrence of the specified phase on or after the specified date.

Solar quarters
 december solstice
 march equinox
 fall equinox
 june solstice
 september equinox
 spring equinox
 summer equinox
 vernal equinox
 winter solstice

This implies the Sun. It computes the first occurrence of the specified quarter after the specified date. Note that the time specified by the seasonal names differs between Northern and Southern Hemispheres.

twilight
 begin twilight
 end twilight

This implies the Sun, and specifies the time the center of the Sun passes above ('begin') or below ('end') the twilight setting of the location object. This defaults to civil twilight (in the U.S. at least), or 6 degrees below the horizon.

noon
 local noon
 local midnight

This implies the Sun. The 'local noon' specification is equivalent to 'sun culminates'.

SEE ALSO

Date::ManipX::Almanac::Date.

Date::ManipX::Almanac::Lang::english.

SUPPORT

Support is by the author. Please file bug reports at https://rt.cpan.org/Public/Dist/Display.html?Name=Date-ManipX-Astro-Lang, https://github.com/trwyant/perl-Date-ManipX-Astro-Lang/issues/, or in electronic mail to the author.

AUTHOR

Thomas R. Wyant, III wyant at cpan dot org

COPYRIGHT AND LICENSE

Copyright (C) 2021-2022 by Thomas R. Wyant, III

This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5.10.0. For more details, see the full text of the licenses in the directory LICENSES.

This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.