Chinesisches Tierkreiszeichen
Nennt zu jedem Jahr das Tier, das Element und die Stelle im sechzigjährigen Zyklus — mit Hinweis auf das verschobene Neujahr.
Der chinesische Kalender ordnet nicht Monaten Zeichen zu wie der westliche Tierkreis, sondern ganzen Jahren — und er kennt zwölf Tiere: Ratte, Büffel, Tiger, Hase, Drache, Schlange, Pferd, Ziege, Affe, Hahn, Hund und Schwein. 2026 ist ein Pferdejahr, 2027 ein Ziegenjahr, und nach zwölf Jahren beginnt die Reihe von vorn.
Damit ist es aber nicht getan. Über den zwölf Tieren liegt ein zweiter Zyklus aus fünf Elementen — Holz, Feuer, Erde, Metall und Wasser —, von denen jedes zwei Jahre lang gilt. Zwölf und zehn ergeben zusammen einen Zyklus von sechzig Jahren, denn erst dann treffen Tier und Element wieder in derselben Kombination aufeinander. Dieser sechzigjährige Zyklus ist die eigentliche Zeiteinheit des traditionellen chinesischen Kalenders; ein sechzigster Geburtstag hat dort deshalb einen ähnlichen Rang wie bei uns ein hundertster.
Ein wichtiger Vorbehalt: Das chinesische Jahr beginnt nicht am 1. Januar, sondern am Neumond zwischen dem 21. Januar und dem 21. Februar — der Termin wandert also von Jahr zu Jahr. Wer im Januar oder in der ersten Februarhälfte geboren ist, gehört deshalb häufig noch zum Tier des Vorjahres. Das Script rechnet mit dem gregorianischen Jahr und weist bei solchen Geburtstagen ausdrücklich darauf hin; für den genauen Fall müsst ihr das Datum des chinesischen Neujahrs jenes Jahres nachschlagen.
Verwandtes: das westliche Sternzeichen geht nach dem Geburtsmonat, An welchem Wochentag wurde ich geboren nach dem Tag. Wer sich für die Rechenkunst hinter Kalendern interessiert, findet beim Osterdatum ein ähnlich verschachteltes Beispiel aus dem europäischen Raum.
So funktioniert das Script
Zwei Zyklen mit verschiedener Länge, die übereinanderliegen — das ist die ganze Aufgabe. Sie lässt sich vollständig mit Restrechnungen lösen, und das Beispiel zeigt gut, warum der Restwert-Operator zu den nützlichsten Werkzeugen überhaupt gehört.
const anker = 1984;
const abstand = jahr - anker;
Zyklische Berechnungen brauchen einen Bezugspunkt. 1984 eignet sich, weil in diesem Jahr ein neuer Sechzigerzyklus begann — es war ein Holz-Ratten-Jahr, also Position 1 von 60. Von dort aus wird nur noch der Abstand gezählt; alles Weitere ergibt sich daraus.
function rest(zahl, teiler) {
return ((zahl % teiler) + teiler) % teiler;
}
Diese Hilfsfunktion sieht überflüssig aus und ist unverzichtbar. Für Jahre vor 1984 wird der Abstand negativ, und JavaScript liefert dann auch einen negativen Rest: -5 % 12 ergibt -5 und nicht die gewünschte 7. Ein negativer Index greift aber ins Leere, und das Script zeigte für alle älteren Jahrgänge undefined. Die Rechnung „plus Teiler, nochmal Rest" schiebt das Ergebnis in den erlaubten Bereich. Dieselbe Zeile steckt aus demselben Grund in der Caesar-Verschlüsselung.
tier: tiere[rest(abstand, 12)],
element: elemente[Math.floor(rest(abstand, 10) / 2)],
Das Tier ist der Rest bei Division durch zwölf — zwölf Tiere, jedes ein Jahr. Beim Element ist es der Rest bei Division durch zehn, halbiert und abgerundet, denn jedes der fünf Elemente gilt zwei Jahre lang. Aus dem Abstand 42 (also 2026) wird so: 42 mod 12 = 6, das siebte Tier, das Pferd; und 42 mod 10 = 2, halbiert und abgerundet ergibt 1, also das zweite Element, Feuer. 2026 ist demnach ein Feuer-Pferd-Jahr.
stelle: rest(abstand, 60) + 1
Warum genau sechzig? Weil zwölf und zehn erst nach sechzig Schritten wieder gleichzeitig aufgehen — sechzig ist ihr kleinstes gemeinsames Vielfaches. Wären es zwölf Tiere und zwölf Elemente, wiederholte sich alles schon nach zwölf Jahren; wären es zwölf und elf, dauerte es 132 Jahre. Denselben Zusammenhang könnt ihr mit dem größten gemeinsamen Teiler nachrechnen.
kraft: rest(abstand, 2) === 0 ? "Yang" : "Yin"
Yin und Yang wechseln jährlich und hängen fest mit dem Element zusammen: Das erste Jahr eines Elements ist Yang, das zweite Yin. Man könnte den Wert deshalb auch aus dem Element ableiten — die eigene Restrechnung ist aber kürzer und macht den Zusammenhang deutlicher.
Zum Anpassen: Um den chinesischen Neujahrstag genau zu treffen, bräuchtet ihr die Mondphasen — eine echte astronomische Rechnung, für die eine Tabelle der Neujahrsdaten der einfachere Weg ist. Für die vietnamesische Fassung des Tierkreises tauscht ihr im Array den Hasen gegen die Katze und den Büffel gegen den Wasserbüffel; der Rest der Rechnung bleibt unverändert.
Script für die eigene Homepage
Kopiert euch den kompletten Code und fügt ihn an der Stelle eurer Seite ein, an der das Script erscheinen soll. Er läuft ohne weitere Dateien und ohne fremde Server.
Mehr aus der Kategorie Datum & Uhrzeit
-
An welchem Wochentag wurde ich geboren?
-
Analoge Uhr
-
Analoge Uhr mit römischen Ziffern
-
Arbeitstage berechnen
-
Digitaluhr
-
Jahreszeit
-
Kalender
-
Kalender mit Uhrzeit und Feiertagen
-
Kalenderwoche berechnen
-
Mondphase berechnen
-
Osterdatum berechnen
-
Schaltjahr prüfen
-
Sternzeichen ermitteln
-
Tage bis zum Jahr 3000
-
Tage zwischen zwei Daten
-
Uhrzeit in Worten
-
Unix-Zeitstempel wandeln
-
Weltzeituhr
-
Zeitumstellung