NAME
DateTime::Calendar::Mayan - The Mayan Long Count Calendar
SYNOPSIS
use DateTime::Calendar::Mayan
# 2003-04-01 UTC
my $dtcm = DateTime::Calendar::Mayan->new(
baktun => 12,
katun => 19,
tun => 10,
uinal => 2,
kin => 8,
# alternate epoch
epoch => DateTime->new(
year => -3113,
month => 8,
day => 13,
);
);
print $dtcm->bktuk;
# prints 12.19.10.2.8
DESCRIPTION
An implementation of the Mayan Long Count Calendar as defined in "Calendrical Calculations The Millennium Edition". Supplemented by "Frequently Asked Questions about Calendars".
METHODS
new( baktun => $scalar, ..., epoch => $object )
Accepts a hash representing the number of days since the Mayan epoch and a "DateTime::Calendar" object specifying an alternate epoch. All keys are optional.
The units are: kin = 1 day uinal = 20 days tun = 360 days katun = 7200 days baktun = 144000 days
In the future pictuns, calabtuns, kinchiltuns, and alautuns may be accepted.
now
Alternate constructor. Uses DateTime->now to set the current date.
today
Alternate constructor. Uses DateTime->today to set the current date.
clone
This object method returns a replica of the given object.
from_object( object => $object )
Accepts a "DateTime::Calendar" object. Although this calendar doesn't support time it will preserve the time value of objects passed to it. This prevents a loss of precision when chaining calendars.
Note: Language support is not implemented.
utc_rd_values
Returns the current UTC Rata Die days and seconds as a two element list.
from_epoch( epoch => $scalar )
Creates a new object from a number of seconds relative to midnight 1970-01-01.
epoch
Returns the number of seconds since midnight 1970-01-01.
set_mayan_epoch( object => $object )
Accepts a "DateTime::Calendar" object. The epoch is set to this value on a per object basis
The default epoch is:
Goodman-Martinez-Thompson Aug. 11, -3113 / Sep. 6, 3114 B.C.E. / 584,283 JD
Returns a "DateTime::Calendar::Mayan" object set to the current Mayan epoch.
bktuk( $scalar )
Think DateTime::ymd. Like ymd this method also accepts an optional field separator string.
date
Aliased to bktuk.
baktun
katun
tun
uinal
kin( $scalar )
Gets/Sets the long count value of the function name.
set_baktun
set_katun
set_tun
set_uinal
set_kin( $scalar )
Aliases to the combined accessor/mutators.
set( baktun => $scalar, ... )
Accepts a hash specifying new long count values. All units are optional.
add
subtract( baktun => $scalar, ... )
Accepts a hash specifying values to add or subject from the long count. All units are optional.
add_duration
subtract_duration( $object )
Accepts a "DateTime::Duration" object and either adds or subtracts it from the current date. See the DateTime::Duration docs for more details.
BACKGROUND
TODO :)
CREDITS
Dave Rolsky (DROLSKY) for the DateTime project and carrying us this far.
Eugene van der Pijll (PIJLL) for DateTime::Calendar::Julian which I looked at more then once.
Calendrical Calculations "The Millennium Edition" By Edward M. Reingold & Nachum Dershowitz. (ISBN 0-521-77752-6)
Abigail (ABIGAIL) for Date::Maya from which I confirmed the algorithm for Mayan years.
"Frequently Asked Questions about Calendars" by Claus Tøndering. http://www.tondering.dk/claus/calendar.html
SUPPORT
Support for this module is provided via the datetime@perl.org email list. See http://lists.perl.org/ for more details.
AUTHOR
Joshua Hoblitt <jhoblitt@cpan.org>
COPYRIGHT
Copyright (c) 2003 Joshua Hoblitt. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
SEE ALSO
datetime@perl.org mailing list
http://datetime.perl.org/
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 542:
Unknown directive: =itme