Ja, Wikipedia (http://de.wikipedia.org/wiki/Julianisches_Datum#Berechnung_aus_dem_Kalenderdatum) ist Dein Freund!
Das astronomische Julianische Datum kann nach dem folgendem Algorithmus aus einem im Julianischen oder Gregorianischen Kalender gegebenen Datum berechnet werden (das Julianische Datum darf nicht negativ sein):
wenn Monat>2 dann Y = Jahr, M = Monat
sonst Y = Jahr-1, M = Monat+12
D = Tag
H = Stunde/24 + Minute/1440 + Sekunde/86.400
wenn Gregorianischer_Kalender dann A = Int(Y/100), B = 2 - A + Int(A/4) // gregorianisch
sonst B = 0 // julianisch
JD = Int(365,25*(Y+4716)) + Int(30,6001*(M+1)) + D + H + B - 1524,5
Die Variablen Tag, Monat, Jahr, Stunde, Minute und Sekunde enthalten die Bestandteile des zu bearbeitenden Datums, das Ergebnis wird in JD zurückgegeben. Die Funktion Int schneidet die Nachkommastellen einer Zahl ab.
Hallo Designi,
ich habe mal in der journal-Datenbank zwei zusätzliche Felder gebastelt: datum und test.
dann habe ich eine schaltfläche erstellt, hinter der sich folgender code versteckt:
Jahr := @Year(datum);
Monat := @Month(datum);
Tag := @Day(datum);
y := Jahr + ((Monat - 2,85) / 12);
A := @Integer(367 * y) - 1,75 *@Integer( y) + Tag;
B:= @Integer(A) - 0,75 * @Integer(y / 100);
JD := @Integer(B) + 1721115;
@SetField( "test" ; JD)
Das ist im Übrigen die Berechnungsformel für das chronologische Julianische Datum, das Du ebenfalls in dem Wiki-Artikel findest (für die ausführlichere Berechnung fehlt mir gerade die Zeit, müsste aber ähnlich funktionieren).
Chronologisches Julianisches Datum [Bearbeiten]
Das chronologische Julianische Datum wird ebenfalls ab dem 1. Januar –4712 gezählt, aber nur in ganzzahligen Tagesschritten. Es entspricht dem astronomischen Julianischen Datum für 12h mittags.
Berechnung [Bearbeiten]
Der folgende Pseudocode berechnet aus einem Datum im gregorianischen Kalender das chronologische Julianische Datum:
y = Jahr + (Monat - 2.85) / 12
A = Int(367 * y) - 1.75 * Int(y) + Tag
B = Int(A) - 0.75 * Int(y / 100)
JD = Int(B) + 1721115
Die Variablen Tag, Monat und Jahr enthalten die Bestandteile des zu bearbeitenden Datums, die Variablen y, A und B sind Hilfsgrößen der Berechnung und das Ergebnis wird in JD zurückgegeben. Int steht für das Abschneiden der Nachkommastellen.
Das führt (bei mir zumindest) zu den im Artikel erwähnten Ergebnissen.
Ach so:
Beispiel: aus 10.12.2007 wird 07344
aus 10.12.2007 wird 2454445
HTH
Thomas