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 thelocation
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::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.