Mayan calendar: Difference between revisions

From Rosetta Code
Content added Content deleted
m (tidy up a bit)
m (Regularize accents)
Line 18: Line 18:
The twenty day names in the Maya Sacred Calendar are:
The twenty day names in the Maya Sacred Calendar are:


Imix
Imix’
Ik’
Ik’
Ak’bal
Ak’bal
Line 33: Line 33:
Hix
Hix
Men
Men
Kib
K’ib’
Kaban
Kaban
Etz’nab
Etz’nab’
Kawak
Kawak
Ajaw
Ajaw
Line 44: Line 44:
For example:
For example:


1 Imix
1 Imix’
2 Ik’
2 Ik’
3 Ak’bal
3 Ak’bal
Line 53: Line 53:
1 Hix
1 Hix
2 Men
2 Men
3 Kib
3 K’ib’
... and so on.
... and so on.


'''The Haab'''
'''The Haab’'''


The Mayan civil calendar is called the '''Haab'''. This calendar has 365 days per
The Mayan civil calendar is called the '''Haab’'''. This calendar has 365 days per
year, and is sometimes called the ‘vague year.’ It is substantially the same as
year, and is sometimes called the ‘vague year.’ It is substantially the same as
our year, but does not make leap year adjustments, so over long periods of time,
our year, but does not make leap year adjustments, so over long periods of time,
gets out of synchronization with the seasons. It consists of 18 months with 20 days each,
gets out of synchronization with the seasons. It consists of 18 months with 20 days each,
and the end of the year, a special month of only 5 days, giving a total of 365.
and the end of the year, a special month of only 5 days, giving a total of 365.
The 5 days of the month of '''Wayeb''' (the last month), are usually considered to be
The 5 days of the month of '''Wayeb’''' (the last month), are usually considered to be
a time of bad luck. This calendar is still used in parts of South America.
a time of bad luck. This calendar is still used in parts of South America.


Each month in the '''Haab''' has a name. The Mayan names for the civil months are:
Each month in the '''Haab’''' has a name. The Mayan names for the civil months are:


Pop
Pop
Wo
Wo’
Sip
Sip
Sotz’
Sotz’
Line 78: Line 78:
Ch’en
Ch’en
Yax
Yax
Sak
Sak’
Keh
Keh
Mak
Mak
Line 86: Line 86:
K’ayab
K’ayab
Kumk’u
Kumk’u
Wayeb (Short, "unlucky" month)
Wayeb’ (Short, "unlucky" month)


The months function very much like ours do. That is, for any given month we
The months function very much like ours do. That is, for any given month we
Line 95: Line 95:
because of the leap year in 2020, '''1 Pop''' falls on '''April 1st''' in the years 2020-2023.
because of the leap year in 2020, '''1 Pop''' falls on '''April 1st''' in the years 2020-2023.


The only really unusual aspect of the '''Haab''' calendar is that, although there are
The only really unusual aspect of the '''Haab’''' calendar is that, although there are
20 (or 5) days in each month, the last day of the month is not called
20 (or 5) days in each month, the last day of the month is not called
the 20th (5th). Instead, the last day of the month is referred to as the
the 20th (5th). Instead, the last day of the month is referred to as the
Line 106: Line 106:
18 Pop (18th day of the first month)
18 Pop (18th day of the first month)
19 Pop (19th day of the first month)
19 Pop (19th day of the first month)
Chum Wo (20th day of the first month)
Chum Wo’ (20th day of the first month)
1 Wo (1st day of the second month)
1 Wo’ (1st day of the second month)
... and so on.
... and so on.


Dates for any particular day are a combination of the '''Tzolk’in''' sacred date,
Dates for any particular day are a combination of the '''Tzolk’in''' sacred date,
and '''Haab''' civil date. When put together we get the '''“Calendar Round.”'''
and '''Haab’''' civil date. When put together we get the '''“Calendar Round.”'''


'''Calendar Round''' dates always have two numbers and two names, and they are
'''Calendar Round''' dates always have two numbers and two names, and they are
Line 118: Line 118:
(1) the day number in the '''Tzolk’in'''
(1) the day number in the '''Tzolk’in'''
(2) the day name in the '''Tzolk’in'''
(2) the day name in the '''Tzolk’in'''
(3) the day of the month in the '''Haab'''
(3) the day of the month in the '''Haab’'''
(4) the month in the '''Haab'''
(4) the month in the '''Haab’'''


A calendar round is a repeating cycle with a period of just short of 52
A calendar round is a repeating cycle with a period of just short of 52
Line 154: Line 154:
'''Piktun''' == 20 '''Bak’tun''' (8,000 short years)
'''Piktun''' == 20 '''Bak’tun''' (8,000 short years)
'''Kalabtun''' == 20 '''Piktun''' (160,000 short years)
'''Kalabtun''' == 20 '''Piktun''' (160,000 short years)
'''Kinchiltun''' == 20 '''Kalabtuns''' (3,200,000 short years)
'''Kinchiltun''' == 20 '''Kalabtun''' (3,200,000 short years)


For the most part, the Maya only used the blocks of time up to the '''bak’tun'''. One
For the most part, the Maya only used the blocks of time up to the '''bak’tun'''. One
Line 220: Line 220:
{{works with|Rakudo|2018.12}}
{{works with|Rakudo|2018.12}}


<lang perl6>my @sacred = <Imix Ik’ Ak’bal K’an Chikchan Kimi Manik’ Lamat Muluk Ok
<lang perl6>my @sacred = <Imix’ Ik’ Ak’bal K’an Chikchan Kimi Manik’ Lamat Muluk Ok
Chuwen Eb Ben Hix Men Kib Kaban Etz’nab Kawak Ajaw>;
Chuwen Eb Ben Hix Men K’ib’ Kaban Etz’nab’ Kawak Ajaw>;


my @civil = <Pop Wo Sip Sotz’ Sek Xul Yaxk’in Mol Ch’en Yax Sak Keh
my @civil = <Pop Wo’ Sip Sotz’ Sek Xul Yaxk’in Mol Ch’en Yax Sak’ Keh
Mak K’ank’in Muwan Pax K’ayab Kumk’u Wayeb>;
Mak K’ank’in Muwan’ Pax K’ayab Kumk’u Wayeb’>;


my %correlation = :GMT({
my %correlation = :GMT({
Line 271: Line 271:
reverse $days.polymod(20,18,20,20);
reverse $days.polymod(20,18,20,20);
}
}



# HEADER
# HEADER
Line 292: Line 293:
}</lang>
}</lang>
{{out}}
{{out}}
<pre> Gregorian Tzolk’in Haab Long Lord of
<pre> Gregorian Tzolk’in Haab’ Long Lord of
Date # Name Day Month Count the Night
Date # Name Day Month Count the Night
2004-06-19 4 Ben 16 Sotz’ 12.19.11.6.13 G7
2004-06-19 4 Ben 16 Sotz’ 12.19.11.6.13 G7
2012-12-18 1 Kaban Chum K’ank’in 12.19.19.17.17 G6
2012-12-18 1 Kaban Chum K’ank’in 12.19.19.17.17 G6
2012-12-21 4 Ajaw 3 K’ank’in 13.0.0.0.0 G9
2012-12-21 4 Ajaw 3 K’ank’in 13.0.0.0.0 G9
2019-01-19 1 Ajaw 13 Muwan 13.0.6.3.0 G6
2019-01-19 1 Ajaw 13 Muwan’ 13.0.6.3.0 G6
2019-03-27 3 Manik’ Chum Wayeb 13.0.6.6.7 G1
2019-03-27 3 Manik’ Chum Wayeb’ 13.0.6.6.7 G1
2020-02-29 4 Kimi 14 K’ayab 13.0.7.5.6 G7
2020-02-29 4 Kimi 14 K’ayab 13.0.7.5.6 G7
2020-03-01 5 Manik’ 15 K’ayab 13.0.7.5.7 G8</pre>
2020-03-01 5 Manik’ 15 K’ayab 13.0.7.5.7 G8</pre>

Revision as of 16:09, 20 January 2019

Mayan calendar is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.

The ancient Maya people had two somewhat distinct calendar systems.

In somewhat simplified terms, one is a cyclical calendar known as The Calendar Round, that meshes several sacred and civil cycles; the other is an offset calendar known as The Long Count, similar in many ways to the Gregorian calendar.

The Calendar Round

The Calendar Round has several intermeshing sacred and civil cycles that uniquely identify a specific date in an approximately 52 year cycle.

The Tzolk’in

The sacred cycle in the Mayan calendar round was called the Tzolk’in. The Tzolk'in has a cycle of 20 day names.

The twenty day names in the Maya Sacred Calendar are:

   Imix’
   Ik’
   Ak’bal
   K’an
   Chikchan
   Kimi
   Manik’
   Lamat
   Muluk
   Ok
   Chuwen
   Eb
   Ben
   Hix
   Men
   K’ib’
   Kaban
   Etz’nab’
   Kawak
   Ajaw

Intermeshed with the named days, the Tzolk’in has a cycle of 13 numbered days; 1 through 13. Every day has both a number and a name that repeat in a 260 day cycle.

For example:

   1 Imix’
   2 Ik’
   3 Ak’bal
   ...
   11 Chuwen
   12 Eb
   13 Ben
   1 Hix
   2 Men
   3 K’ib’
   ... and so on.

The Haab’

The Mayan civil calendar is called the Haab’. This calendar has 365 days per year, and is sometimes called the ‘vague year.’ It is substantially the same as our year, but does not make leap year adjustments, so over long periods of time, gets out of synchronization with the seasons. It consists of 18 months with 20 days each, and the end of the year, a special month of only 5 days, giving a total of 365. The 5 days of the month of Wayeb’ (the last month), are usually considered to be a time of bad luck. This calendar is still used in parts of South America.

Each month in the Haab’ has a name. The Mayan names for the civil months are:

   Pop
   Wo’
   Sip
   Sotz’
   Sek
   Xul
   Yaxk’in
   Mol
   Ch’en
   Yax
   Sak’
   Keh
   Mak
   K’ank’in
   Muwan
   Pax
   K’ayab
   Kumk’u
   Wayeb’ (Short, "unlucky" month)

The months function very much like ours do. That is, for any given month we count through all the days of that month, and then move on to the next month.

Normally, the day 1 Pop is considered the first day of the civil year, just as 1 January is the first day of our year. In 2019, 1 Pop falls on April 2nd. But, because of the leap year in 2020, 1 Pop falls on April 1st in the years 2020-2023.

The only really unusual aspect of the Haab’ calendar is that, although there are 20 (or 5) days in each month, the last day of the month is not called the 20th (5th). Instead, the last day of the month is referred to as the ‘seating,’ or ‘putting in place,’ of the next month. (Much like how in our culture, December 24th is Christmas Eve and December 31st is 'New-Years Eve'.) In the language of the ancient Maya, the word for seating was chum, So you might have:

   ...
   18 Pop (18th day of the first month)
   19 Pop (19th day of the first month)
   Chum Wo’ (20th day of the first month)
   1 Wo’ (1st day of the second month)
   ... and so on.

Dates for any particular day are a combination of the Tzolk’in sacred date, and Haab’ civil date. When put together we get the “Calendar Round.”

Calendar Round dates always have two numbers and two names, and they are always written in the same order:

   (1) the day number in the Tzolk’in
   (2) the day name in the  Tzolk’in
   (3) the day of the month in the Haab’
   (4) the month in the Haab’

A calendar round is a repeating cycle with a period of just short of 52 Gregorian calendar years. To be precise: it is 52 x 365 days. (No leap days)

Lords of the Night

A third cycle of nine days honored the nine Lords of the Night; nine deities that were associated with each day in turn. The names of the nine deities are lost; they are now commonly referred to as G1 through G9. The Lord of the Night may or may not be included in a Mayan date, if it is, it is typically just the appropriate G(x) at the end.

The Long Count

Mayans had a separate independent way of measuring time that did not run in cycles. (At least, not on normal human scales.) Instead, much like our yearly calendar, each day just gets a little further from the starting point. For the ancient Maya, the starting point was the ‘creation date’ of the current world. This date corresponds to our date of August 11, 3114 B.C. Dates are calculated by measuring how many days have transpired since this starting date; This is called “The Long Count.” Rather than just an absolute count of days, the long count is broken up into unit blocks, much like our calendar has months, years, decades and centuries.

   The basic unit is a k’in - one day.
   A 20 day month is a winal.
   18 winal (360 days) is a tun - sometimes referred to as a short year.
   20 short years (tun) is a k’atun
   20 k’atun is a bak’tun

There are longer units too:

   Piktun == 20 Bak’tun (8,000 short years)
   Kalabtun  == 20 Piktun (160,000 short years)
   Kinchiltun  == 20 Kalabtun (3,200,000 short years)

For the most part, the Maya only used the blocks of time up to the bak’tun. One bak’tun is around 394 years, much more than a human life span, so that was all they usually needed to describe dates in this era, or this world. It is worth noting, the two calendars working together allow much more accurate and reliable notation for dates than is available in many other calendar systems; mostly due to the pragmatic choice to make the calendar simply track days, rather than trying to make it align with seasons and/or try to conflate it with the notion of time.

Mayan Date correlations

There is some controversy over finding a correlation point between the Gregorian and Mayan calendars. The Gregorian calendar is full of jumps and skips to keep the calendar aligned with the seasons so is much more difficult to work with. There is some disagreement over which date the current Mayan cycle beginning correlates to in the Gregorian calendar. The most commonly used correlation factor is The GMT: 584283. Julian 584283 is a day count corresponding Mon, Aug 11, 3114 BCE in the Gregorian calendar, and the final day in the last Mayan long count cycle: 13.0.0.0.0 which is referred to as "the day of creation" in the Mayan calendar. There is nothing in known Mayan writing or history that suggests that a long count "cycle" resets every 13 bak’tun. Judging by their other practices, it would make much more sense for it to reset at 20, if at all.

The reason there was much interest at all, outside historical scholars, in the Mayan calendar is that the long count recently (relatively speaking) rolled over to 13.0.0.0.0 (the same as the historic day of creation Long Count date) on Fri, Dec 21, 2012 (using the most common GMT correlation factor), prompting conspiracy theorists to predict a cataclysmic "end-of-the-word" scenario.

Excerpts taken from, and recommended reading:


The Task:

Write a reusable routine that takes a Gregorian date and returns the equivalent date in Mayan in the Calendar Round and the Long Count. At a minimum, use the GMT correlation. If desired, support other correlations.

Using the GMT correlation, the following Gregorian and Mayan dates are equivalent:

  Dec 21, 2012 (Gregorian)
  4 Ajaw 3 K’ank’in G9 (Calendar round)
  13.0.0.0.0 (Long count)

Support looking up dates for at least 50 years before and after the Mayan Long Count 13 bak’tun rollover: Dec 21, 2012. (Will require taking into account Gregorian leap days.)

Show the output here, on this page, for at least the following dates:

(Note that these are in ISO-8601 format: YYYY-MM-DD. There is no requirement to use ISO-8601 format in your program, but if you differ, make a note of the expected format.)

   2004-06-19
   2012-12-18
   2012-12-21
   2019-01-19
   2019-03-27
   2020-02-29
   2020-03-01

Perl 6

Works with: Rakudo version 2018.12

<lang perl6>my @sacred = <Imix’ Ik’ Ak’bal K’an Chikchan Kimi Manik’ Lamat Muluk Ok

             Chuwen Eb Ben Hix Men K’ib’ Kaban Etz’nab’ Kawak Ajaw>;

my @civil = <Pop Wo’ Sip Sotz’ Sek Xul Yaxk’in Mol Ch’en Yax Sak’ Keh

            Mak K’ank’in Muwan’ Pax K’ayab Kumk’u Wayeb’>;

my %correlation = :GMT({

   :gregorian(Date.new('2012-12-21')),
   :round([3,19,263,8]),
   :long(1872000)

});

sub mayan-calendar-round ($date) { .&tzolkin, .&haab given $date }

sub offset ($date, $factor = 'GMT') { Date.new($date) - %correlation{$factor}<gregorian> }

sub haab ($date, $factor = 'GMT') {

   my $index = (offset Date.new($date) + %correlation{$factor}<round>[2]) % 365;
   my ($day, $month);
   if $index > 360 {
       $day = $index - 360;
       $month = @civil[18];
       if $day == 5 {
           $day = 'Chum';
           $month = @civil[0];
       }
   } else {
       $day = $index % 20;
       $month = @civil[$index div 20];
       if $day == 0 {
           $day = 'Chum';
           $month = @civil[(1 + $index) div 20];
       }
   }
   $day, $month

}

sub tzolkin ($date, $factor = 'GMT') {

   my $offset = offset Date.new($date);
   1 + ($offset + %correlation{$factor}<round>[0]) % 13,
   @sacred[($offset + %correlation{$factor}<round>[1]) % 20]

}

sub lord ($date, $factor = 'GMT') {

   'G' ~ 1 + ((offset Date.new($date)) + %correlation{$factor}<round>[3]) % 9

}

sub mayan-long-count ($date, $factor = 'GMT') {

   my $days = %correlation{$factor}<long> + offset Date.new($date);
   reverse $days.polymod(20,18,20,20);

}


  1. HEADER

printf "%10s %9s %10s %12s %10s\n",

   'Gregorian', 'Tzolk’in', 'Haab', 'Long', 'Lord of';

printf "  %-6s %2s %-9s %4s %-10s  %-6s %8s\n",

   'Date', '#', 'Name', 'Day', 'Month', 'Count', 'the Night';
  1. DATES

< 2004-06-19 2012-12-18 2012-12-21 2019-01-19 2019-03-27 2020-02-29 2020-03-01 >.map: -> $date {

   printf "%10s   %2s %-9s %4s %-10s     %-14s %6s\n", Date.new($date),
     flat mayan-calendar-round($date), mayan-long-count($date).join('.'), lord($date);

}</lang>

Output:
 Gregorian   Tzolk’in       Haab’               Long           Lord of
   Date       # Name       Day Month            Count         the Night
2004-06-19    4 Ben         16 Sotz’          12.19.11.6.13      G7
2012-12-18    1 Kaban     Chum K’ank’in       12.19.19.17.17     G6
2012-12-21    4 Ajaw         3 K’ank’in       13.0.0.0.0         G9
2019-01-19    1 Ajaw        13 Muwan’         13.0.6.3.0         G6
2019-03-27    3 Manik’    Chum Wayeb’         13.0.6.6.7         G1
2020-02-29    4 Kimi        14 K’ayab         13.0.7.5.6         G7
2020-03-01    5 Manik’      15 K’ayab         13.0.7.5.7         G8