Delphi - Új dátum/idő függvények a Delphi 6-ban

Dátum/idő függvények 6. rész

forráskód letöltése
A cikksorozat 6. részében azokkal a függvényekkel foglalkozunk, amelyekkel egy dátumot vagy időpontot, vagy akár mindkettőt egyszerre össze tudjuk hasonlítani egy másik időponttal. Ezen kívül szó lesz azokról az eljárásokról, amelyeket akár saját programunkban is felhasználhatunk a hibásan megadott paraméterek jelzésére, valamint megnézünk néhány dátum konverziós függvényt is, amelyekkel több dátum formátum között konvertálhatunk oda-vissza.
CompareDateTime
Osztály:
function CompareDateTime(
const A,
B: TDateTime
): TValueRelationship;
A függvény két dátum/idő értéket hasonlít össze, és az eredménnyel tér vissza.
Paraméterek
const A
Az első összehasonlítandó dátum.
B: TDateTime
A második összehasonlítandó dátum.
Visszatérési érték
A visszatérési érték TValueRelationship típusú, tehát –1, 0, vagy 1. Az ellenőrzést az alábbi konstansokkal végezhetjük el:
  • LessThanValue: ha az A dátum korábbi időpontra esik, mint a B dátum;
  • EqualsValue: ha az A és a B dátum megegyezik;
  • GreaterThanValue: ha az A dátum későbbi időpontra esik, mint a B dátum.
SameDateTime
Osztály:
function SameDateTime(
const A,
B: TDateTime
): Boolean;
A függvény összehasonlítja a paraméterként megadott két dátum/idő értéket, és ha ugyanarra az időpontra esnek, akkor igaz értékkel tér vissza.
CompareDate
Osztály:
function CompareDate(
const A,
B: TDateTime
): TValueRelationship;
A függvény összehasonlítja a paraméterként megadott két dátum/idő érték dátum részét, és egy TValueRelationship típusú értékkel tér vissza (lásd. CompareDateTime).
SameDate
Osztály:
function SameDate(
const A,
B: TDateTime
): Boolean;
A függvény összehasonlítja a paraméterként megadott két dátum/idő érték dátum részét, és ha ugyanarra a napra esnek, akkor igaz értékkel tér vissza.
CompareTime
Osztály:
function CompareTime(
const A,
B: TDateTime
): TValueRelationship;
A függvény összehasonlítja a paraméterként megadott két dátum/idő érték idő részét, és egy TValueRelationship típusú értékkel tér vissza (lásd. CompareDateTime).
SameTime
Osztály:
function SameTime(
const A,
B: TDateTime
): Boolean;
A függvény összehasonlítja a paraméterként megadott két dátum/idő érték idő részét, és ha megegyeznek, akkor igaz értékkel tér vissza.
A következő eljárásokat akkor használhatjuk, ha hibás paraméterekkel találkozunk (például a felhasználó rossz értékeket adott meg). Az eljárások megjelenítik a megfelelő hibaüzenetet, angol nyelven. Ha magyar nyelvű hibaüzeneteket szeretnénk, akkor azt megtehetjük a program több nyelvűvé alakításával (Project/Languages) vagy az RTLConsts unit konstansainak átírásával.
InvalidDateTimeError
Osztály:
procedure InvalidDateTimeError(
const AYear,
AMonth,
ADay,
AHour,
AMinute,
ASecond,
AMilliSecond: Word;
const ABaseDate: TDateTime = 0
);
Ezt az eljárást akkor használhatjuk, ha a dátum/idő értéknél valamelyik paraméter nem esik az érvényes intervallumba. A paraméterekben meg kell adni az évszámot, hónapot, napot, órát, percet, másodpercet, ezredmásodpercet, és egy dátum/idő értéket, ami a helyes dátumot tartalmazza. Ez utóbbi megadása nem kötelező.
InvalidDateWeekError
Osztály:
procedure InvalidDateWeekError(
const AYear,
AWeekOfYear,
ADayOfWeek: Word
);
Ezt az eljárást akkor használhatjuk, ha a megadott évszám, hét szám, vagy a hét napjának száma hibás.
Paraméterek
const AYear
Évszám (1-9999).
AWeekOfYear
A hét száma (1-53).
ADayOfWeek: Word
A hét napjának száma (1-7).
InvalidDateDayError
Osztály:
procedure InvalidDateDayError(
const AYear,
ADayOfYear: Word
);
Az eljárás akkor használható, ha a dátumot évszámmal, és az évből eltelt napok számával kellett volna meghatározni, és ezek közül valamelyik érték nem esik az érvényes intervallumba.
Paraméterek
const AYear
Évszám (1-9999).
ADayOfYear: Word
Az évből eltelt napok száma (a január 1. = 1).
InvalidDateMonthWeekError
Osztály:
procedure InvalidDateMonthWeekError(
const AYear,
AMonth,
AWeekOfMonth,
ADayOfWeek: Word
);
Ezt az eljárást akkor használhatjuk, ha a dátumot évszámmal, hónappal, a hónap hetének számával és a hét napjának számával kellett volna meghatározni, és ezek közül valamelyik érték nem esik az érvényes tartományba.
Paraméterek
const AYear
Évszám (1-9999).
AMonth
Hónap (1-12).
AWeekOfMonth
A hét száma a hónapon belül. A hónap első hetének az a hét számít, amely hétnek legalább 4 napja az adott hónapra esik.
ADayOfWeek: Word
A hét napjának száma (1-7).
InvalidDayOfWeekInMonthError
Osztály:
procedure InvalidDayOfWeekInMonthError(
const AYear,
AMonth,
ANthDayOfWeek,
ADayOfWeek: Word
);
Ezt az eljárást akkor használjuk, ha a dátumot évszámmal, hónappal, az adott nap hónapon belüli előfordulásainak számával, és a hét számával kívántuk megadni, de ezek közül valamelyik hibás.
Paraméterek
const AYear
Évszám (1-9999).
AMonth
Hónap (1-12).
ANthDayOfWeek
Az adott nap hónapon belüli előfordulásainak száma. Ha például a dátum szerdai napra esik, és az adott hónapban ez már kétszer előfordult, akkor a paraméter értéke 2. Ez meghatározza a hónapon belül a hetet is.
ADayOfWeek: Word
A hét napjának száma (1-7).
DateTimeToJulianDate
Osztály:
function DateTimeToJulianDate(
const AValue: TDateTime
): Double;
A függvény a paraméterként megadott dátumot átszámítja a Julianus naptár szerinti dátumra. Ez a formátum az i.e. 4713 január 1. óta eltelt napok számát adja meg Greenwich-i időszámítás szerint. Ezt a formátumot használják a csillagászok, geofizikusok, illetve azok használják, akiknek egyértelmű, és pontos dátum meghatározásra van szükség.
JulianDateToDateTime
Osztály:
function JulianDateToDateTime(
const AValue: Double
): TDateTime;
A Juliánus naptár szerinti formátumban lévő értéket átszámítja normál TDateTime típusú értékké, és ezzel tér vissza.
TryJulianDateToDateTime
Osztály:
function TryJulianDateToDateTime(
const AValue: Double;
out ADateTime: TDateTime
): Boolean;
A függvény megegyezik a JulianDateToDateTime függvénnyel, de hibás érték esetén nem keletkezik kivétel. A függvény visszatérési értéke igaz, ha az átalakítás sikeres volt, és hamis, ha nem.
DateTimeToModifiedJulianDate
Osztály:
function DateTimeToModifiedJulianDate(
const AValue: TDateTime
): Double;
Ez a függvény a paraméterként megkapott TDateTime típusú dátum/idő értéket konvertálja a módosított Julianus naptár szerinti értékre. A módosított Julianus érték annyiban különbözik az eredetitől, hogy ez 1858. november 17. óta eltel napok számát adja meg Greenwich-i időszámítás szerint.
ModifiedJulianDateToDateTime
Osztály:
function ModifiedJulianDateToDateTime(
const AValue: Double
): TDateTime;
A paraméterként megkapott módosított Julianus naptár szerinti értéket (lásd DateTimeToModifiedJulianDate függvény) alakítja át TDateTime típusú dátum/idő értékké, és az eredménnyel tér vissza.
TryModifiedJulianDateToDateTime
Osztály:
function TryModifiedJulianDateToDateTime(
const AValue: Double;
out ADateTime: TDateTime
): Boolean;
A függvény megegyezik a ModifiedJulianDateToDateTime függvénnyel, de a hibás konverzió esetén nem keletkezik kivétel. A függvény visszatérési értéke igaz, ha a konvertálás sikerült, és hamis, ha nem.
DateTimeToUnix
Osztály:
function DateTimeToUnix(
const AValue: TDateTime
): Int64;
A paraméterként megadott TDateTime típusú dátum/idő értéket UNIX formátumúra alakítja. A UNIX a dátumot és időt az 1970. január 1. óta eltelt másodpercekkel tárolja. A függvény visszatérési értékeként megkapjuk ezt az értéket.
UnixToDateTime
Osztály:
function UnixToDateTime(
const AValue: Int64
): TDateTime;
UNIX formátumút dátum/idő értéket konvertál TDateTime típusú dátum/idő értékké.

Dátum/idő függvények cikksorozat