Перевод на календарь майя
Идентифицируйте эпоху (или дату начала) для календаря длинного счёта майя в виде даты по юлианскому календарю.

epoch = JulianDate["Modified",
DateObject[{-3114, 8, 11}, TimeZone -> 0]];
Создайте функцию для перевода из даты календаря длинного счёта майя в дату по юлианскому календарю.

JulianFromMayanLongCount[{baktun_, katun_, tun_, uinal_, kin_}] :=
epoch + 144000*baktun + 7200*katun + 360*tun + 20*uinal + kin
FromJulianDate может быть использована для проверки пробного ввода.

example = JulianFromMayanLongCount[{7, 17, 18, 19, 2}]


FromJulianDate["Modified", example, TimeZone -> 0]

Создайте функцию для перевода напрямую из даты календаря длинного счёта майя во временной объект по григорианскому календарю.

GregorianFromMayanLongCount[date_] := DateValue[
FromJulianDate["Modified",
JulianFromMayanLongCount[date],
TimeZone -> 0],
"Day",
DateObject]

GregorianFromMayanLongCount[{7, 17, 18, 19, 2}]

Создайте функцию для перевода даты юлианского календаря в единицы календаря длинного счёта майя.

JulianToMayanLongCount[date_] := NumberDecompose[
Floor[date - epoch],
{144000, 7200, 360, 20, 1}
]
JulianDate может использоваться для перевода любой даты в дату по юлианскому календарю, которая затем вводится в JulianToMayanLongCount.

DateToMayanLongCount[date_] := Block[{$TimeZone = 0},
JulianToMayanLongCount[JulianDate["Modified", date]]
]
Данная функция отныне принимает любые вводные данные и выдаёт в ответ соответствующий список дат по календарю длинного счёта майя.

DateToMayanLongCount["May 4th, 2015"]


DateToMayanLongCount[AbsoluteTime[]]


DateToMayanLongCount[Today]

Данные функции могут использоваться для перевода временных величин в и из календаря длинного счёта майя.

DateToMayanLongCount[{1900, 1, 1}]


DateToMayanLongCount[{1900, 1, 1}];
GregorianFromMayanLongCount[%]
