Astrologische Berechnungen

AstroOL
Klasse Calculator

java.lang.Object
  |
  +--AstroOL.Calculator
Alle implementierten Interfaces:
ICalculator
Bekannte direkte Unterklassen:
LowPrecCalculator

public class Calculator
extends java.lang.Object
implements ICalculator

Diese Klasse bietet "billige" Hilfsrechnungen, wie sie auf dem Client leicht ausgeführt werden können, zum Beispiel Kalenderberechnungen und formatierte Ein- und Ausgabe.

Instanzen von Calculator dienen als Horoskopberechner, da die Klasse das Interface ICalculator implementiert. Die in dieser Klasse definierte Standardimplementierung ruft zur Berechnung der Planeten und Häuser ein Servlet auf.

Darüberhinaus enthält die Klasse Basismethoden, die eigentlich in java.lang.Math oder java.util.* gehören, dort aber entweder nicht vorhanden sind oder zu einem JDK-Release > 1.1, so dass Klassen, die diese Methoden verwenden, für Benutzer des Microsoft Internet Explorer 5.5 mit der Microsoft VM unbenutzbar wären. Beispiele: Signumfunktion, Sortieralgorithmus für lange Ganzzahlen.

Die Rechenfunktionen sind, genau wie die von java.lang.Math, rein statisch (ohne Instanz-Erzeugung).


Überblick Felder
static double DEFAULT_LAT
          Default-Breite, falls keine Breite von aussen mitgegeben wurde (47,36 Grad Nord)
static double DEFAULT_LON
          Default-Länge, falls keine Länge von aussen mitgegeben wurde (8,55 Grad Ost)
static java.lang.String digit
          Ziffern-String für Formatierungen (Wert "0123456789").
static long ECL
          dms-Funktion: Ausgabe einer ekliptikale Länge.
static long GEO
          dms-Funktion: Ausgabe als Winkel zwischen 0 und 360°.
static long LAT
          dms-Funktion: Ausgabe einer geographischen Breite.
static long LONG
          dms-Funktion: Ausgabe einer geographischen Länge.
static long NO_ROUND
          dms-Funktion: Keine Rundung.
static java.lang.String pknam
          Kurznamen der Planeten für Listausgaben.
static long SEC
          dms-Funktion: Ausgabe ist sekundengenau gewünscht.
static java.lang.String sknam
          Kurznamen der Tierkreiszeichen für Listausgaben.
static long TIME
          dms-Funktion: Zeitangabe (Sternzeit, Ortszeit o.ä.).
static double toDeg
          Umwandlungsfaktor Bogenmass in Grad (57.295...)
static double toRad
          Umwandlungsfaktor Grad in Bogenmass (0.01745...)
 
Überblick Konstruktoren
Calculator()
           
 
Methoden-Überblick
static double acos(double x)
          Wrapper für ArcusCosinus im Gradmass
static boolean analyzeString(java.io.BufferedReader in, double[] h, double[] pl)
          Einen String, der die Planeten- und Hauspositionen enthält, analysieren.
static double arcdiff(double x, double y)
          Hilfsfunktion zur Berechnung des Winkelabstandes.
static double arcdiffAbs(double x, double y)
          Wie arcdiff(), jedoch wird der Absolutbetrag des Winkelabstandes zurückgegeben, also eine Zahl zwischen 0 und 180 Grad.
static double asin(double x)
          Wrapper für ArcusSinus im Gradmass
static double atan(double x)
          Wrapper für ArcusTangens im Gradmass
static double atan2(double x, double y)
          Wrapper für ArcusTangens im Gradmass
static int[] calendarDate(double jd)
          Julianisches Datum in Kalenderdatum konvertieren.
static double cos(double x)
          Wrapper für Cosinus im Gradmass
static java.lang.String date(double jd)
          Julianisches Datum in Kalenderdatum als String umrechnen
static java.lang.String dms(double x)
          Gradzahl ins Grad-Minuten-Sekundensystem wandeln.
static java.lang.String dms(double x, long format)
          Dezimalzahl ins Sexagesimalsystem wandeln.
static java.lang.String doubleList(double[] x)
          Einen Array von doppeltgenauen Gleitkommazahlen in eine komma-separierte Liste verwandeln.
static java.lang.String doubleList(double[] x, int i0)
          Einen Array von doppeltgenauen Gleitkommazahlen in eine komma-separierte Liste verwandeln.
static java.lang.String doubleList(double[] x, int i0, int i1)
          Einen Array von doppeltgenauen Gleitkommazahlen in eine komma-separierte Liste verwandeln.
static double fabs(double x)
          Absolutbetrag einer Gleitkommazahl (Funktion ist nicht in java.lang.Math implementiert!).
static double fmod(double x, double a)
          Reduktion einer Gleitkommazahl x auf das Intervall [0,a).
static double fmod360(double x)
          Reduktion einer Gleitkommazahl x auf das Intervall [0,360).
static double fract(double x)
          Abstand einer Gleitkommazahl von der nächstkleineren Ganzzahl
 double getHouse(double jd_ut, double lon, double lat, double houseNumber, java.lang.StringBuffer serr)
          Implementierung der Interface-Methode zur Hausberechnung.
 double[] getPlanet(double jd_ut, int planet, java.lang.StringBuffer serr)
          Implementierung der Interface-Methode zur Berechnung eines einzelnen Planeten.
 boolean getPlanetsAndHouses(double jd_ut, double lon, double lat, double[] pl, double[] h)
          Implementierung der Methode ICalculator.getPlanetsAndHouses()
static boolean getPlanetsAndHouses(java.lang.String urlstring, double[] pl, double[] h)
          Planeten und Häuser durch Aufruf eines Berechnungs-Servlets im Backend starten.
 java.lang.String getServletURL()
          Servlet-URL zurückgeben
static double julianDate(int year, int month, int day, double et)
          Kalenderdatum in Julianisches Datum wandeln.
static void main(java.lang.String[] argv)
          Methode für Tests (wird nur bei der Entwicklung verwendet)
static int parseDoubleList(java.lang.String in, double[] out)
          Aus einer komma-separierten Liste ein Array von doppeltgenauen Gleitkommazahlen ableiten.
static boolean parseTimePlace(java.lang.String in, double[] tp)
          Aus einem Eingabestring Zeit und Ort ermitteln.
static java.lang.String renderTimePlace(double[] tp)
          Zeit und Ort in einen lesbaren String verwandeln.
static java.lang.String renderTimePlace(double[] tp, long format)
          Zeit und Ort in einen lesbaren String verwandeln.
static java.lang.String renderTimePlace(double jd, double lon, double lat)
          Zeit und Ort in einen lesbaren String verwandeln.
static java.lang.String renderTimePlace(double jd, double lon, double lat, long format)
          Zeit und Ort in einen lesbaren String verwandeln.
 java.lang.String renderTimePlace(java.lang.String jdS, java.lang.String lonS, java.lang.String latS)
          wie renderTimePlace(double,double,double), jedoch mit Strings als Importparametern.
 void setServletURL(java.lang.String iServletURL)
          Servlet-URL, aufbewahren für Aufrufe der ICalculator.getPlanetsAndHouses()-Methode
static byte sgn(double x)
          Signumfunktion einer Gleitkommazahl (Funktion ist nicht in java.lang.Math implementiert!).
static double sin(double x)
          Wrapper für Sinus im Gradmass
static void sort(long[] a)
          Sortieren eines Arrays von langen Ganzzahlen.
static void sort(long[] a, int lo0, int hi0)
          Sortieren eines Array-Teils.
static double tan(double x)
          Wrapper für Tangens im Gradmass
static double thisjd()
          Julianisches Datum aus der aktuellen Systemzeit ermitteln.
 
Von Klasse java.lang.Object geerbte Methoden
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Feld-Details

DEFAULT_LAT

public static final double DEFAULT_LAT
Default-Breite, falls keine Breite von aussen mitgegeben wurde (47,36 Grad Nord)

DEFAULT_LON

public static final double DEFAULT_LON
Default-Länge, falls keine Länge von aussen mitgegeben wurde (8,55 Grad Ost)

digit

public static final java.lang.String digit
Ziffern-String für Formatierungen (Wert "0123456789"). Wird verwendet, um Eingabestrings zu analysieren.

ECL

public static final long ECL
dms-Funktion: Ausgabe einer ekliptikale Länge.
Je nach Angabe von SEC wird die Ausgabe in der Form 13SG21 (minutengenaue Ausgabe) oder 13°21'22" SG (sekundengenaue Ausgabe) erfolgen. Bei der minutengenauen Ausgabe wird das Tierkreiszeichen also als Trenner zwischen Grad- und Minutenwert behandelt.

Spezifikation für die Funktion dms(). Die gewünschten Werte müssen, mit einem logischen Oder verknüpft, als Bitmaske für den Wert format der Methode dms() übergeben werden.


GEO

public static final long GEO
dms-Funktion: Ausgabe als Winkel zwischen 0 und 360°.
Untypisierter - "geometrischer" Winkelwert des Vollkreises.

Spezifikation für die Funktion dms(). Die gewünschten Werte müssen, mit einem logischen Oder verknüpft, als Bitmaske für den Wert format der Methode dms() übergeben werden.


LAT

public static final long LAT
dms-Funktion: Ausgabe einer geographischen Breite.
Je nach Angabe von SEC wird die Ausgabe in der Form 13S22 (minutengenaue Ausgabe) oder 13°22'31" S (sekundengenaue Ausgabe) erfolgen. Positive Werte werden als nördliche, negative als südliche Breiten interpretiert.

Spezifikation für die Funktion dms(). Die gewünschten Werte müssen, mit einem logischen Oder verknüpft, als Bitmaske für den Wert format der Methode dms() übergeben werden.


LONG

public static final long LONG
dms-Funktion: Ausgabe einer geographischen Länge.
Je nach Angabe von SEC wird die Ausgabe in der Form 13E22 (minutengenaue Ausgabe) oder 13°22'31" E (sekundengenaue Ausgabe) erfolgen. Positive Werte werden als östliche, negative als westliche Längen interpretiert.

Spezifikation für die Funktion dms(). Die gewünschten Werte müssen, mit einem logischen Oder verknüpft, als Bitmaske für den Wert format der Methode dms() übergeben werden.


NO_ROUND

public static final long NO_ROUND
dms-Funktion: Keine Rundung.
Standardmässig wird auf die nächste Bogenminute oder -sekunde, je nach gewünschter Genauigkeit, gerundet. Die Rundung lässt sich durch den Formatierer NO_ROUND abschalten. Für astrologische Längen gilt bei eingeschalteter Rundung die zusätzliche Rundungsregel, dass an der Grenze eines Tierkreiszeichens niemals zum nächsten Zeichen hin aufgerundet wird. Ein Wert von 29°59.5' AR wird beispielsweise auf 29°59' AR abgerundet. Hier gilt die Regel, dass die Information, in welchem Zeichen sich das Objekt befindet, für den Astrologen wichtiger ist als die Ü;berschreitung des Rundungsfehlers von 0.5' (oder 0.5" bei Rundung auf Bogensekunden).

Spezifikation für die Funktion dms(). Die gewünschten Werte müssen, mit einem logischen Oder verknüpft, als Bitmaske für den Wert format der Methode dms() übergeben werden.


pknam

public static final java.lang.String pknam
Kurznamen der Planeten für Listausgaben. Je zwei Zeichen des Strings stehen für einen Planeten, wobei die folgende internationale Nomenklatur verwendet wird:

IndexKurzformPlanet
0SOSonne
2MOMond
4MEMerkur
6VEVenus
8MAMars
10JUJupiter
12SASaturn
14URUranus
16NENeptun
18PLPluto


SEC

public static final long SEC
dms-Funktion: Ausgabe ist sekundengenau gewünscht.

Spezifikation für die Funktion dms(). Die gewünschten Werte müssen, mit einem logischen Oder verknüpft, als Bitmaske für den Wert format der Methode dms() übergeben werden.


sknam

public static final java.lang.String sknam
Kurznamen der Tierkreiszeichen für Listausgaben. Je zwei Zeichen des Strings stehen für ein Tierkreiszeichen, wobei die folgenden, international üblichen Abkürzungen verwendet werden:

IndexKurzformZeichen
0ARWidder (Aries)
2TAStier (Taurus)
4GEZwillinge (Gemini)
6CNKrebs (Cancer)
8LELöwe (Leo)
10VIJungfrau (Virgo)
12LIWaage (Libra)
14SCSkorpion (Scorpio)
16SGSchütze (Sagittarius)
18CPSteinbock (Capricornus)
20AQWassermann (Aquarius)
22PSFische (Pisces)


TIME

public static final long TIME
dms-Funktion: Zeitangabe (Sternzeit, Ortszeit o.ä.).
Je nach Angabe von SEC wird 13h22m oder 13h22m21s ausgegeben.

Spezifikation für die Funktion dms(). Die gewünschten Werte müssen, mit einem logischen Oder verknüpft, als Bitmaske für den Wert format der Methode dms() übergeben werden.


toDeg

public static final double toDeg
Umwandlungsfaktor Bogenmass in Grad (57.295...)

toRad

public static final double toRad
Umwandlungsfaktor Grad in Bogenmass (0.01745...)
Konstruktor-Details

Calculator

public Calculator()
Methoden-Details

acos

public static double acos(double x)
Wrapper für ArcusCosinus im Gradmass

analyzeString

public static boolean analyzeString(java.io.BufferedReader in,
                                    double[] h,
                                    double[] pl)
Einen String, der die Planeten- und Hauspositionen enthält, analysieren. Es wird ein String (genauer: ein BufferedReader) ausgewertet, der, auf die Schlüsselwörter "planets:" und "houses:" folgend, Listen komma-getrennter Gleitkommazahlen enthält. Die Gleitkommazahlen werden in entsprechende Arrays h[] und pl[] vom Typ double[] eingelesen. Etwaige Fehler- oder Warnmeldungen (Schlüsselwörter "error:" oder "warning:") werden auf der Konsole ausgegeben. Für die Häuser ist die Besonderheit zu beachten, dass das erste Haus in h[1] und nicht in h[0], allgemeiner das n.Haus in h[n] (und nicht in h[n-1]) geschrieben wird. Die Arrays h[] bzw. pl[] müssen vom aufrufenden Programm bereits erzeugt worden sein, und zwar mindestens von den Dimensionen 13 bzw. 10.
Parameter:
in - BufferedReader, der den Input enthält
h - Array für die Hauspositionen, mindestens double[13]
pl - Array für die Planetenpositionen, mindestens double[10]
Rückgabewert:
Wahr, falls die Konvertierung erfolgreich war.

arcdiff

public static double arcdiff(double x,
                             double y)
Hilfsfunktion zur Berechnung des Winkelabstandes. Es wird die Differenz x - y auf das Intervall [-180,+180) reduziert berechnet. Diese Reduktion ist zur Berechnung von Abständen im Kreis nützlich.
Parameter:
x - Erster Argument in Grad
y - Zweites Argument in Grad
Rückgabewert:
Winkelabstand x - y, reduziert auf [-180,+180)

arcdiffAbs

public static double arcdiffAbs(double x,
                                double y)
Wie arcdiff(), jedoch wird der Absolutbetrag des Winkelabstandes zurückgegeben, also eine Zahl zwischen 0 und 180 Grad.
Parameter:
x - Erster Argument in Grad
y - Zweites Argument in Grad
Rückgabewert:
Winkelabstand x - y, reduziert auf [0,+180)

asin

public static double asin(double x)
Wrapper für ArcusSinus im Gradmass

atan

public static double atan(double x)
Wrapper für ArcusTangens im Gradmass

atan2

public static double atan2(double x,
                           double y)
Wrapper für ArcusTangens im Gradmass

calendarDate

public static int[] calendarDate(double jd)
Julianisches Datum in Kalenderdatum konvertieren.

Das Julianische Datum (fortlaufende Tageszahl) wird in ein "lesbares" Kalenderdatum konvertiert. Es wird ab dem 14.10.1582 der Gregorianische, vor diesem Datum der Julianische Kalender zugrundegelegt.

Parameter:
jd - Julianisches Datum
Rückgabewert:
Array mit drei Integers für das Datum: date[0] = Jahr, date[1] = Monat, date[2] = Tag.

cos

public static double cos(double x)
Wrapper für Cosinus im Gradmass

date

public static java.lang.String date(double jd)
Julianisches Datum in Kalenderdatum als String umrechnen

dms

public static java.lang.String dms(double x)
Gradzahl ins Grad-Minuten-Sekundensystem wandeln.

Wird die Funktion dms() mit nur einem Parameter aufgerufen, so wandelt sie diesen Parameterwert in eine Gradzahl um, notiert im Grad/Minuten/Sekundensystem. Das heisst, defaultmässig sind für die Konvertierung die Optionen GEO und SEC aktiv.

Parameter:
x - Gleitkommazahl
Rückgabewert:
String, der die Gleitkommazahl x im Sexagesimalsystem darstellt.

dms

public static java.lang.String dms(double x,
                                   long format)
Dezimalzahl ins Sexagesimalsystem wandeln.

Mit dem zweiten Parameter der Funktion hat man Einfluss auf die Formatierung. Er bestimmt, ob die übergebene Dezimalzahl eine Gradzahl im Vollkreis ist, eine ekliptikale Längenangabe, eine geographische Länge, geographische Breite oder eine Zeitangabe. Durch Hinzuaddieren der Option SEC wird sekunden- statt der defaultmässig minutengenauen Ausgabe angefordert, durch Addieren von NO_ROUND wird das Runden verhindert, das Ergebnis wird auf die gewünschte Genauigkeit abgeschnitten.

Parameter:
x - Gleitkommazahl
format - Summe von einer oder mehreren Formatierungskonstanten
Rückgabewert:
String, der die Gleitkommazahl im Sexagesimalsystem darstellt.

doubleList

public static java.lang.String doubleList(double[] x)
Einen Array von doppeltgenauen Gleitkommazahlen in eine komma-separierte Liste verwandeln. Die Zahlen werden auf vier Nachkommastellen gerundet.
Parameter:
x - Der Array
Rückgabewert:
Liste

doubleList

public static java.lang.String doubleList(double[] x,
                                          int i0)
Einen Array von doppeltgenauen Gleitkommazahlen in eine komma-separierte Liste verwandeln. Die Zahlen werden auf vier Nachkommastellen gerundet. Der Array wird ab dem Element mit dem Index i0 bis zum Ende gewandelt.
Parameter:
x - Der Array
i0 - Index des ersten Arrayelements, das in die Liste gesetzt werden soll
Rückgabewert:
Liste

doubleList

public static java.lang.String doubleList(double[] x,
                                          int i0,
                                          int i1)
Einen Array von doppeltgenauen Gleitkommazahlen in eine komma-separierte Liste verwandeln. Die Zahlen werden auf vier Nachkommastellen gerundet.
Parameter:
x - Der Array
i0 - Index des ersten Arrayelements, das in die Liste gesetzt werden soll
i1 - Index des letzten Arrayelements, das in die Liste gesetzt werden soll
Rückgabewert:
String, der die Liste

fabs

public static double fabs(double x)
Absolutbetrag einer Gleitkommazahl (Funktion ist nicht in java.lang.Math implementiert!).

fmod

public static double fmod(double x,
                          double a)
Reduktion einer Gleitkommazahl x auf das Intervall [0,a).
Die Funktion liefert eine Zahl zwischen 0 und a, die denselben Wert modulo a repräsentiert wie das Argument x.
Parameter:
x - Eine doppeltgenaue Gleitkommazahl
a - Modulo-Wert
Rückgabewert:
Ergebnis der Reduktion

fmod360

public static double fmod360(double x)
Reduktion einer Gleitkommazahl x auf das Intervall [0,360).
Die Funktion liefert eine Zahl zwischen 0 und 360°, die denselben Winkelwert repräsentiert wie das Argument.
Parameter:
x - Eine doppeltgenaue Gleitkommazahl
Rückgabewert:
Ergebnis der Reduktion

fract

public static double fract(double x)
Abstand einer Gleitkommazahl von der nächstkleineren Ganzzahl

getHouse

public double getHouse(double jd_ut,
                       double lon,
                       double lat,
                       double houseNumber,
                       java.lang.StringBuffer serr)
Implementierung der Interface-Methode zur Hausberechnung.
Erklärt durch:
getHouse in Interface ICalculator
Folgendes kopiert von Interface: AstroOL.ICalculator
Parameter:
jd_ut - julianisches Datum in Weltzeit (nicht Ephemeridenzeit)
lon - geographische Länge des Ortes (für Hausberechnungen)
lat - geographische (nicht geozentrische) Breite des Ortes (für Hausberechnungen)
die - zu berechnende Häuserspitze. Das Interface schreibt nur vor, daß die ganzzahligen Werte 1 bis 12 den Spitzen der Häser 1 bis 12 entsprechen. Die implementierenden Klassen Calculator und LowPrecCalculator interpretieren Zwischenwerte als mundane Position.

getPlanet

public double[] getPlanet(double jd_ut,
                          int planet,
                          java.lang.StringBuffer serr)
Implementierung der Interface-Methode zur Berechnung eines einzelnen Planeten.
Erklärt durch:
getPlanet in Interface ICalculator
Folgendes kopiert von Interface: AstroOL.ICalculator
Parameter:
jd_ut - julianisches Datum in Weltzeit (nicht Ephemeridenzeit)
planet - Nummer des Planeten. Es gilt die Reihenfolge SO, MO, ME, VE, MA, JU, SA, UR, NE und PL, wobei SO die Nummer Null hat.
serr - Fehler- oder Warnmeldung im Klartext. Kann auch mehrere Meldungen, getrennt durch Zeilenvorschübe, enthalten.

getPlanetsAndHouses

public boolean getPlanetsAndHouses(double jd_ut,
                                   double lon,
                                   double lat,
                                   double[] pl,
                                   double[] h)
Implementierung der Methode ICalculator.getPlanetsAndHouses()
Erklärt durch:
getPlanetsAndHouses in Interface ICalculator
Folgendes kopiert von Interface: AstroOL.ICalculator
Parameter:
jd_ut - julianisches Datum in Weltzeit (nicht Ephemeridenzeit)
lon - geographische Länge des Ortes (für Hausberechnungen)
lat - geographische (nicht geozentrische) Breite des Ortes (für Hausberechnungen)
pl - die Referenz auf ein Array von doppeltgenauen Gleitkommazahlen mit mindestens zehn Elementen; die ersten zehn Elemente werden mit den geozentrischen ekliptikalen Planetenpositionen in der Reihenfolge SO, MO, ME, VE, MA, JU, SA, UR, NE und PL gefüllt.
h - die Referenz auf ein Array von doppeltgenauen Gleitkommazahlen mit mindestens dreizehn Elementen. Das erste Element (mit Index 0) bleibt leer. Das Element h[i] wird für i = 1 bis 12 mit dem Wert der i. Hausspitze gefüllt. Die Wahl oder gar Wählbarkeit des Häsersystems ist im Interface nicht festgelegt und stellt somit ein Implementierungsdetail dar.

getPlanetsAndHouses

public static boolean getPlanetsAndHouses(java.lang.String urlstring,
                                          double[] pl,
                                          double[] h)
Planeten und Häuser durch Aufruf eines Berechnungs-Servlets im Backend starten. Die angegebene URL muss einen Response vom Typ text/plain zurückgeben, der aus zwei komma-separierten Listen von Gleitkommazahlen besteht. Die erste dieser Listen besteht aus den zehn ekliptikalen Längen der Planeten. Die zweite besteht aus den zwölf Häuserspitzen. Für die Häuser besteht die Konvention, die erste Hausspitze ins Element h[1] (und nicht etwa h[0]) zu setzen

getServletURL

public java.lang.String getServletURL()
Servlet-URL zurückgeben
Erklärt durch:
getServletURL in Interface ICalculator

julianDate

public static double julianDate(int year,
                                int month,
                                int day,
                                double et)
Kalenderdatum in Julianisches Datum wandeln.

Es wird ab dem 14.10.1582 der Gregorianische, vor diesem Datum der Julianische Kalender zugrundegelegt.

Parameter:
year - Kalenderjahr
month - Kalendermonat
day - Kalendertag
et - Ephemeridenzeit oder auch Weltzeit
Rückgabewert:
Julianisches Datum; je nach Zeitart des Parameters et ist auch das Julianische Datum in Ephemeriden- oder Weltzeit zu verstehen. Es findet keine interne Konvertierung von Weltzeit in Ephemeridenzeit statt.

main

public static void main(java.lang.String[] argv)
Methode für Tests (wird nur bei der Entwicklung verwendet)

parseDoubleList

public static int parseDoubleList(java.lang.String in,
                                  double[] out)
Aus einer komma-separierten Liste ein Array von doppeltgenauen Gleitkommazahlen ableiten.
Parameter:
in - Eingabestring. Beispiel: "1.23e5,1.23,0.5,,"
out - Ergebnis. Wegen der Wertübergabe muss der Array bereits vom Aufrufer initialisiert worden sein. Es werden solange Werte in den Ergebnis-Array übertragen, bis das letzte Element der Ergebnisliste oder das letzte Element im Eingabestring erreicht ist, oder bis ein Konvertierungsfehler beim Interpretieren eines String-Teils als Gleitkommazahl auftritt.
Rückgabewert:
Die Anzahl der erfolgreich vom Eingabestring in die Liste übertragenen Werte Das Beispiel ergibt die Liste [1.23e5,1.23,0.5,0,0]

parseTimePlace

public static boolean parseTimePlace(java.lang.String in,
                                     double[] tp)
Aus einem Eingabestring Zeit und Ort ermitteln.
Parameter:
in - Eingabestring. Folgende Arten von Eingaben sind beispielsweise möglich:
  • 19.2.1964 22:25 7E16 52N20
  • 19.2.1964 7h 7E16'12" 52N19'46
  • 19.2.1964 7E16' 22h25m 52N19'46"
Die Reihenfolge der einzelnen Parameter Datum, Zeit, Länge, Breite ist also beliebig.

Es wäre bequem möglich, an dieser Stelle mit regulären Ausdrücken zu arbeiten. Da hierfür in Java jedoch eine separate Bibliothek benötigt wird und die Umwandlung auch auf dem Client erfolgen muss (Load klein halten!), wurde die Interpretation des Zeit/Ort-Strings hier ausprogrammiert.

Ausserdem gilt es, den von Microsoft hingeworfenen Java- Fehdehandschuh aufzunehmen und die besonders stumpfsinnige Herausforderung anzunehmen, dass die Funktion - wie dieses ganze Applet - unter Java 1.1.3 noch lauffähig sein muss, damit es auch mit dem Internet Explorer funktioniert. Dies schliesst auch so elementare Methoden wie beispielsweise StringBuffer.replace() aus.

tp - Ergebnis - ein Array von drei Gleitkommazahlen mit folgenden Inhalten:

0Julianisches Datum
1Ö;stliche Länge
2Nördliche Breite

Rückgabewert:
Wahr, wenn das Lesen erfolgreich ausgeführt werden konnte.

renderTimePlace

public static java.lang.String renderTimePlace(double[] tp)
Zeit und Ort in einen lesbaren String verwandeln.
Parameter:
tp - Array von drei Gleitkommazahlen: tp[0] enthält das Julianische Datum, tp[1] die Länge und tp[2] die Breite
Rückgabewert:
String, der Datum im Kalenderformat, Zeit, Länge und Breite im Sexagesimalsystem enthält

renderTimePlace

public static java.lang.String renderTimePlace(double[] tp,
                                               long format)
Zeit und Ort in einen lesbaren String verwandeln.
Parameter:
tp - Array von drei Gleitkommazahlen: tp[0] enthält das Julianische Datum, tp[1] die Länge und tp[2] die Breite
format - Lange Ganzzahl mit Formatierungsanweisungen für die Sexagesimalzahlen, z.B. SEC für Sekundengenauigkeit oder NO_ROUND zum Unterlassen des Rundens.
Rückgabewert:
String, der Datum im Kalenderformat, Zeit, Länge und Breite im Sexagesimalsystem enthält

renderTimePlace

public static java.lang.String renderTimePlace(double jd,
                                               double lon,
                                               double lat)
Zeit und Ort in einen lesbaren String verwandeln.
Parameter:
jd - Julianisches Datum
lon - Geographische Länge (östlich ist positiv)
lat - Geographische Breite (nördlich ist positiv)
Rückgabewert:
String, der Datum im Kalenderformat, Zeit, Länge und Breite im Sexagesimalsystem enthält

renderTimePlace

public static java.lang.String renderTimePlace(double jd,
                                               double lon,
                                               double lat,
                                               long format)
Zeit und Ort in einen lesbaren String verwandeln.
Parameter:
jd - Julianisches Datum
lon - Geographische Länge (östlich ist positiv)
lat - Geographische Breite (nördlich ist positiv)
format - Lange Ganzzahl mit Formatierungsanweisungen für die Sexagesimalzahlen, z.B. SEC für Sekundengenauigkeit oder NO_ROUND zum Unterlassen des Rundens.
Rückgabewert:
String, der Datum im Kalenderformat, Zeit, Länge und Breite im Sexagesimalsystem enthält

renderTimePlace

public java.lang.String renderTimePlace(java.lang.String jdS,
                                        java.lang.String lonS,
                                        java.lang.String latS)
wie renderTimePlace(double,double,double), jedoch mit Strings als Importparametern. Für den Aufruf mit Javascript.

setServletURL

public void setServletURL(java.lang.String iServletURL)
Servlet-URL, aufbewahren für Aufrufe der ICalculator.getPlanetsAndHouses()-Methode
Erklärt durch:
setServletURL in Interface ICalculator

sgn

public static byte sgn(double x)
Signumfunktion einer Gleitkommazahl (Funktion ist nicht in java.lang.Math implementiert!).

Die Signumfunktion hat drei mögliche Werte: 0,1 und -1. Sie liefert

Parameter:
x - Argument der Signumfunktion, eine doppeltgenaue Gleitkommazahl
Rückgabewert:
Wert der Signumfunktion von x -- ein Byte genügt, um das Ergebnis zu halten.

sin

public static double sin(double x)
Wrapper für Sinus im Gradmass

sort

public static void sort(long[] a)
Sortieren eines Arrays von langen Ganzzahlen. Der Sortieralgorithmus wird hier für den elementaren Datentyp long explizit codiert, da die benötigte Methode Arrays.sort() erst ab JDK 1.2 zur Verfügung steht, was der Verwendung in "mittelalten Browsern", z.B. Internet Explorer 5.5, im Wege steht. Es wäre stattdessen möglich gewesen, einen bereits seit JDK 1.0 bestehenden Sortieralgorithmus für generische Objekte zu verwenden. Die Instanziierung der entsprechenden Wrapperobjekte ( Long() ), die für den generischen Algorithmus erforderlich wäre, kostet wertvolle Rechenzeit. Durch Ausformulieren des Algorithmus für den Typ long lässt sich diese Zeit sparen.
Parameter:
a - Array von langen Ganzzahlen

sort

public static void sort(long[] a,
                        int lo0,
                        int hi0)
Sortieren eines Array-Teils. Die Methode wird in dieser Signatur zur Implementierung des QuickSort-Algorithmus verwendet.
Parameter:
a - Array von langen Ganzzahlen
lo0 - Untergrenze des zu sortierenden Bereichs von a
hi0 - Obergrenze des zu sortierenden Bereichs von a

tan

public static double tan(double x)
Wrapper für Tangens im Gradmass

thisjd

public static double thisjd()
Julianisches Datum aus der aktuellen Systemzeit ermitteln.
Rückgabewert:
Julianisches Datum

Astrologische Berechnungen