Delphi - Julián-időszámítás

forráskód letöltése
A csillagászatban és más tudományokban is szükség lehet egy olyan időszámításra, amely a napokat folyamatosan számolja. Erre kínál megoldást a Julián-naptár. Ebben a példában azt vizsgáljuk, hogy a Delphi milyen lehetőséget biztosít a Julián-időszámítás kezelésére.
A Julián-napok kezelésére, a DateUtils unitban találhatunk néhány függvényt. Ezek a következők:
DateTimeToJulianDate
function DateTimeToJulianDate(
const AValue: TDateTime
): Double;
Egy TDateTime értéket átvált Julián napokba. A Julián napok számítása folyamatosan történik, Krisztus előtt 4713. január elsején, greenwich-i idő szerint déltől kezdődően.
Paraméterek
const AValue: TDateTime
Az átváltandó dátum, TDateTime típusban.
Visszatérési érték
A megadott dátumig eltelt, Julián-napok száma.
JulianDateToDateTime
function JulianDateToDateTime(
const AValue: Double
): TDateTime;
A DateTimeToJulianDate függvény inverze. Julián napot alakít át TDateTime formátumba.
Paraméterek
const AValue: Double
Átalakítandó Julián nap.
Visszatérési érték
A megadott nap TDateTime formátumú megfelelője.
A TDateTime – Julián nap konverzióhoz használhatunk két másik függvényt is, melyek az időszámítás kezdetében térnek el az előzőektől. Ez a két függvény szintén a DateUtils unitban található.
DateTimeToModifiedJulianDate
function DateTimeToModifiedJulianDate(
const AValue: TDateTime
): Double
Egy TDateTime értéket átvált Julián napra. Ezen függvény esetében, a Julián napok számítása folyamatosan történik, 1858. november 17-e, greenwich-i idő szerint éjféltől kezdődően.
Paraméterek
const AValue: TDateTime
Az átváltandó dátum, TDateTime típusban.
Visszatérési érték
A megadott dátumig eltelt, Julián-napok száma.
ModifiedJulianDateToDateTime
function ModifiedJulianDateToDateTime(
const AValue: Double
): TDateTime;
A DateTimeToModifiedJulianDate függvény inverze. Julián napot alakít át TDateTime formátumba.
Paraméterek
const AValue: Double
Átalakítandó Julián nap.
Visszatérési érték
A megadott nap, TDateTime formátumú megfelelője.
Nem minden Julián nap alakítható át TDateTime formátumba. Ha olyan átalakítást végzünk, amely nem végrehajtható, akkor a Delphi hibaüzenetet ad.
Ezek elkerülésére szolgál az alábbi két függvény.
TryJulianDateToDateTime
function TryJulianDateToDateTime(
const AValue: Double;
out ADateTime: TDateTime
): Boolean;
Ugyanazt a konverziót hajtja végre, mint a JulianDateToDateTime függvény, csak hiba esetén nem ad hibaüzenetet. A konverzió sikerességéről egy logikai típusú visszatérési értéken keresztül értesülhetünk.
Paraméterek
const AValue: Double
A konvertálandó Julián nap.
out ADateTime: TDateTime
Itt egy TDateTime típusú változót kell megadnunk, melybe a konvertálás eredménye kerül, ha a megadott nap átváltható.
Visszatérési érték
Igaz, ha a konverzió sikeres volt, ellenkező esetben hamis.
TryModifiedJulianDateToDateTime
function TryModifiedJulianDateToDateTime(
const AValue: Double;
out ADateTime: TDateTime
): Boolean;
Ugyanazt a konverziót hajtja végre, mint a ModifiedJulianDateToDateTime függvény, csak hiba esetén nem ad hibaüzenetet. A konverzió sikerességéről egy logikai típusú visszatérési értéken keresztül értesülhetünk.
Paraméterek
const AValue: Double
A konvertálandó Julián nap.
out ADateTime: TDateTime
Itt egy TDateTime típusú változót kell megadnunk, melybe a konvertálás eredménye kerül, ha a megadott nap átváltható.
Visszatérési érték
Igaz, ha a konverzió sikeres volt, ellenkező esetben hamis.