In den Maya-Kalender konvertieren
Identifzieren Sie die Epoche (oder das Anfangsdatum) der Langen Zählung der Maya als Julianisches Datum.
epoch = JulianDate["Modified",
DateObject[{-3114, 8, 11}, TimeZone -> 0]];
Erstellen Sie eine Funktion, um Einheiten der Langen Zählung in ein Julianisches Datum zu konvertieren.
JulianFromMayanLongCount[{baktun_, katun_, tun_, uinal_, kin_}] :=
epoch + 144000*baktun + 7200*katun + 360*tun + 20*uinal + kin
FromJulianDate kann verwendet werden, um eine Beispieleingabe zu testen.
example = JulianFromMayanLongCount[{7, 17, 18, 19, 2}]
FromJulianDate["Modified", example, TimeZone -> 0]
Erstellen Sie eine Funktion, um Datumsobjekte direkt von der Langen Zählung der Maya in den gregorianischen Kalender zu konvertieren.
GregorianFromMayanLongCount[date_] := DateValue[
FromJulianDate["Modified",
JulianFromMayanLongCount[date],
TimeZone -> 0],
"Day",
DateObject]
GregorianFromMayanLongCount[{7, 17, 18, 19, 2}]
Erstellen Sie eine Funktion, um ein julianisches Datum in Einheiten der Langen Zählung zu konvertieren.
JulianToMayanLongCount[date_] := NumberDecompose[
Floor[date - epoch],
{144000, 7200, 360, 20, 1}
]
JulianDate kann verwendet werden, um Datumseingaben aller Art in ein julianisches Datum zu konvertieren, das anschließend in JulianToMayanLongCount eingefügt wird.
DateToMayanLongCount[date_] := Block[{$TimeZone = 0},
JulianToMayanLongCount[JulianDate["Modified", date]]
]
Diese Funktion akzeptiert nun jedes beliebige Eingabedatum und gibt die entsprechende Datumsliste der Langen Zählung zurück.
DateToMayanLongCount["May 4th, 2015"]
DateToMayanLongCount[AbsoluteTime[]]
DateToMayanLongCount[Today]
Diese beiden Funktionen können verwendet werden, um Datumsangaben in die und aus der Langen Zählung zu konvertieren.
DateToMayanLongCount[{1900, 1, 1}]
DateToMayanLongCount[{1900, 1, 1}];
GregorianFromMayanLongCount[%]