Sternzeichen
    
 HomeDatum • Sternzeichen berechnen Quellcode 

 Sternzeichen berechnen 01

Ein nettes Script zur Berechnung von Sternzeichen. Aus den Angaben für Monat und Tag wird das westliche Tierkreiszeichen errechnet, aus den Jahresangaben das chinesische Sternzeichen.
abendländisches und chinesisches Sternzeichen

Jahr (4stellig)
Monat
Tag
 
abendländisches Sternzeichen
chinesisches Sternzeichen


Siehe auch: Anzeige des aktuellen abendländischen Sternzeichens

Siehe auch: Berechnung des abendländischen Sternzeichens mit Bildanzeige



   abendländisches Horoskop / Sternzeichen

Die Ermittlung des westlichen Sternzeichens erfolgt durch eine Folge von Vergleichen, die den Wahrheitswert von Bedingungen untersuchen und den entsprechenden Text für das Sternzeichen in das Formularfeld schreibt.

Beispiel für das Sternzeichen Fische, vom 19.02 - 20.03

Wenn

der Monat Februar ist und der Tag ist größer / gleich 19
oder
der Monat März ist und der Tag ist kleiner / gleich 20

dann ist der angezeigte Wert "Fische"
if (Monat == 2 && Tag >=19 || Monat == 3 && Tag <=20)

{value = "Fische";}



   chinesisches Sternzeichen

Die Ermittlung des Chinesischen Strenzeichens erfolgt ebenfalls durch mathematische Berechnungen und Vergleiche. Da es zwölf im Jahresrhythmus wechselnde Sternzeichen im chinesischen Kalender gibt, soll dem Geburtsjahr eines von 12 Sternzeichen zugeordnet werden. Eine Wiederholung tritt also in einem 12-jährigen Zyklus auf.

Dividiert man das Lebensalter durch 12, wird als Rest der Division nur ein Wert von 0 bis 11 (Rest = '0' bis Rest = '11') möglich sein. Abhängig von diesem Restwert wird eines der 12 chinesischen Sternzeichen zugeordnet. Basis der Berechnung ist das Jahr 1901 mit dem Zeichen 'Büffel'. Eine Tabelle mit den 12 Zeichen finden sie weiter unten.

Beispiel für das Geburtsjahr 1964:

(1964 - 1901) / 12   = 63
63 / 12 = 5  Rest 3
Aus einer Referenztabelle ermittelt man für den Wert '3' das Sternzeichen: "Drache"

Die Formel im Script (Erklärung weiter unten)
x = (Geburtsjahr - Startjahr) % 12;



   Restwert ermitteln mit JavaScript

Um den Restwert einer Division zu ermitteln steht uns in JavaScript eine interne Funktion zur Verfügung: Modulo

Das Rechenzeichen für Modulo ist %

Diese Formel schreibt den mit Modulo ermittelten Wert in die Variable 'x'
x = (1964 - 1901) % 12;
Die Variable 'x' enthält nach der Berechnung den Wert '3'


... nur als Vergleich
Ergebnis = (1964 - 1901) / 12;
Die Variable 'Ergebnis' enthält nach der Berechnung den Wert '5,25'




   12 chinesische Sternzeichen



Die zwölf im Jahresrhythmus wechselnden Sternzeichen des chinesischen Kalenders und die ihnen zugeordneten Charaktereigenschaften (Quelle der Bedeutungen: Wikipedia).

Ich habe in dieser Auflistung fortlaufende Nummern eingetragen. Die chinesischen Sternzeichen dieser Liste möchte ich in der Berechnungsfunktion mit Hilfe der Zahlenwerte identifizieren / referenzieren.

Die Zahl entspricht dem Wert der in der Variablen 'x' abgelegt wurde und bei der Divison mit der JavaScript-Funktion Modulo (%) ermittelt wurde.

Rest 3 = Drache
0Ochse / Büffelsanft
1Tigerverwegen
2Hasegutmütig
3Drachegeistreich
4Schlangeschlau
5Pferdungeduldig
6Schaf / Ziegeartig
7Affeunbeständig
8Hahnstolz
9Hundtreu
10Schweinehrlich
11Ratteangriffslustig


Überlegungen zur Berechnung:

Von der im Formular eingetragenen Jahreszahl wird der Wert 1901 (Sternzeichen Rind) subtrahiert. Das Ergebnis dann durch 12 geteilt (12 Sternzeichen). Interessant für die Zuordnung des chin. Sternzeichens ist der Rest diser Division durch 12. Der Rest ist ein Wert zwischen 0 und 11. In der Reihenfolge der Auflistung oben werden die Sternzeichen den Restwerten 0 bis 11 zugeordnet. Eine Wiederholung tritt entsprechend im 12-jährigen Zyklus auf.

Geburtsjahr 1901, 1913, 1925, 1937, ... 2009 | der ermittelte Rest '0' = Sternzeichen Büffel
Geburtsjahr 1902, 1914, 1926, 1938, ... 2010 | der ermittelte Rest '1' = Sternzeichen Tiger
Geburtsjahr 1903, 1915, 1927, 1939, ... 2011 | der ermittelte Rest '2' = Sternzeichen Hase

JahrBerechnung mit /Berechnung mit %Sternzeichen
1913(1913 - 1901) / 121,0000(1913 - 1901) % 120Büffel
1914(1914 - 1901) / 121,0833(1914 - 1901) % 121Tiger
1915(1915 - 1901) / 121,1666(1915 - 1901) % 122Hase
2009(2009 - 1901) / 129,0000(2009 - 1901) % 120Büffel
2010(2010 - 1901) / 129,0833(2010 - 1901) % 121Tiger
2011(2011 - 1901) / 129,1666(2011 - 1901) % 122Hase



   Fehler durch simple Zuordnung

Das ist die simple Methode die nicht wirklich zutrifft, denn des chinesische Jahr beginnt nicht zum jährlich gleichen Termin!

Jedes Jahr zum chinesischen Neujahr (das ist zum Zeitpunkt des zweiten, in seltenen Fällen dritten Neumonds nach der Wintersonnenwende, also zwischen dem 21. Januar und dem 21. Februar), wechselt die Bezeichnung des Sternzeichens zyklisch nach der oben stehenden Liste.

Da das chinesische Neujahr frühestens am 21. Januar beginnt, zählen bis zum 20. Januar geborene immer zum Zeichen des Vorjahrs.

Zumindest diese Situation habe ich berücksichtigt durch
if (Monat == 1 && Tag <=20) {x = x-1}

Alle zwischen 21. Januar und 20. Februar geborene sind nicht fest zuzuordnen und variieren von Jahr zu Jahr, abhängig vom Mondzyklus.

Das wurde von mir nicht berücksichtigt. Dazu müsste ich entweder
  1. den Mondzyklus in die Berechnung mit einbeziehen
  2. die Datumsangaben aus einer tabellarischen Liste entnehmen









NACH OBEN