Delphi - Dátum/idő függvények a Delphi 6-ban

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

forráskód letöltése
A cikksorozat 7. részében további dátum/idő konverziós függvényekkel foglalkozunk, valamint néhány egyszerűbb függvényt is bemutatunk a dátumok és időpontok felbontásához, vagy paraméterekből való összeállításához. Azt is megnézzük, hogy miként lehet a rendszerdátumot és időt lekérdezni külön-külön, illetve egyszerre, vagy hogyan lehet egy TDateTime típusú értékben a dátum, vagy az idő részt felcserélni egy másik dátumra illetve időpontra.
DateTimeToTimeStamp
Osztály:
function DateTimeToTimeStamp(
DateTime: TDateTime
): TTimeStamp;
A paraméterként megadott TDateTime típusú dátum/idő értéket TDateStamp típusú értékké konvertálja. A TDateStamp egy struktúra, amely a következőképpen néz ki:
TTimeStamp = record
  Time: Integer;
  Date: Integer;
end;
A Time mezőben történik meg az idő tárolása, a mező az éjfél óta eltelt ezredmásodperceket tartalmazza.
A Date mező a dátum tárolására szolgál, az időszámítás óta (1. január .1) eltelt napok számát tartalmazza.
TimeStampToDateTime
Osztály:
function TimeStampToDateTime(
const TimeStamp: TTimeStamp
): TDateTime;
A TTimeStamp (lásd DateTimeToTimeStamp függvény) struktúrában tárolt dátum/idő értéket TDateTime típusú értékké alakítja, és az eredménnyel tér vissza.
MSecsToTimeStamp
Osztály:
function MSecsToTimeStamp(
MSecs: Comp
): TTimeStamp;
A paraméterként megadott ezredmásodperceket TTimeStamp típusban tárolt dátum/idő értékké alakítja. A paraméter Comp típusú, ami egy 8 bájtos típus, -2^63+1 – 2^63-1 intervallumba eső értéket képes tárolni.
TimeStampToMSecs
Osztály:
function TimeStampToMSecs(
const TimeStamp: TTimeStamp
): Comp;
A TTimeStamp típusú paraméterben megadott dátum/idő értéket átszámolja ezredmásodperccé, és az eredménnyel tér vissza.
EncodeDate
Osztály:
function EncodeDate(
Year,
Month,
Day: Word
): TDateTime;
Ezzel a függvénnyel a paraméterként megadott évszámból, hónapból és napból előállít egy TdateTime típusú dátum/idő értéket, és az eredménnyel tér vissza.
EncodeTime
Osztály:
function EncodeTime(
Hour,
Min,
Sec,
MSec: Word
): TDateTime;
A függvény a paraméterként megadott órából, percből, másodpercből és ezredmásodpercből előállítja a az időpontot egy TDateTime típusban és az eredménnyel tér vissza.
TryEncodeDate
Osztály:
function TryEncodeDate(
Year,
Month,
Day: Word;
out Date: TDateTime
): Boolean;
Ez a függvény megegyezik az EncodeDate függvénnyel, a különbség annyi, hogy az eredmény is paraméterben kapjuk meg (Date paraméter), és hibás paraméterek esetén sem okoz kivételt. A függvény visszatérési értéke igaz, ha sikerült a konvertálás, és hamis, ha nem.
TryEncodeTime
Osztály:
function TryEncodeTime(
Hour,
Min,
Sec,
MSec: Word;
out Time: TDateTime
): Boolean;
Ez a függvény megegyezik az EncodeTime függvénnyel, a különbség annyi, hogy az eredmény is paraméterben kapjuk meg (Time paraméter), és hibás paraméterek esetén sem okoz kivételt. A függvény visszatérési értéke igaz, ha sikerült a konvertálás, és hamis, ha nem.
DecodeDate
Osztály:
procedure DecodeDate(
const DateTime: TDateTime;
var Year,
Month,
Day: Word
);
Az eljárás a paraméterként megadott TDateTime típusú értéket felbontja évszámra, hónapra és napra. Az eredményeket a megfelelő paraméterekben kapjuk meg.
Paraméterek
const DateTime: TDateTime
A felbontandó dátum.
var Year
Ebben a paraméterben kapjuk meg az évszámot.
Month
Ebben a paraméterben kapjuk meg a hónapot.
Day: Word
Ebben a paraméterben kapjuk meg a napot.
DecodeDateFully
Osztály:
function DecodeDateFully(
const DateTime: TDateTime;
var Year,
Month,
Day,
DOW: Word
): Boolean;
Ezzel a függvénnyel felbonthatjuk a paraméterként megadott dátumot évszámra, hónapra, napra, és az adott nap héten belüli sorszámára.
Paraméterek
const DateTime: TDateTime
Az ebben a paraméterben megadott dátumot bontjuk fel.
var Year
Ebben a paraméterben kapjuk meg az évszámot.
Month
Ebben a paraméterben kapjuk meg a hónapot.
Day
Ebben a paraméterben kapjuk meg a napot.
DOW: Word
Ebben a paraméterben kapjuk meg az adott nap sorszámát a héten belül.
Visszatérési érték
A visszatérési érték, ha az adott dátum szökőévre esik, és hamis, ha nem.
DecodeTime
Osztály:
procedure DecodeTime(
const DateTime: TDateTime;
var Hour,
Min,
Sec,
MSec: Word
);
Ezzel az eljárással egy TDateTime típusú paraméterben megadott időpontot bonthatunk fel órára, percre, másodpercre és ezredmásodpercre. Az eredményeket a megfelelő paraméterekben kapjuk meg. A felbontásnál csak az idő részét veszi figyelembe a TDateTime típusú értéknek.
Paraméterek
const DateTime: TDateTime
A felbontandó idő.
var Hour
Ebben a paraméterben kapjuk meg az órák számát.
Min
Ebben a paraméterben kapjuk meg a percek számát.
Sec
Ebben a paraméterben kapjuk meg a másodpercek számát.
MSec: Word
Ebben a paraméterben kapjuk meg az ezredmásodpercek számát.
DateTimeToSystemTime
Osztály:
procedure DateTimeToSystemTime(
const DateTime: TDateTime;
var SystemTime: TSystemTime
);
Az eljárás a paraméterként megadott TDateTime típusú dátum/idő értéket TSystemTime formátumúra alakítja. A TSystemTime típus egy struktúra, ami a következőképpen néz ki:
TSystemTime = record
  wYear: Word;
  wMonth: Word;
  wDayOfWeek: Word;
  wDay: Word;
  wHour: Word;
  wMinute: Word;
  wSecond: Word;
  wMilliseconds: Word;
end;
Mint látható, a struktúrában a különböző időegységek egy-egy Word típusú mezőkben vannak tárolva. A Windows API függvények ezt a formátumot használják.
Paraméterek
const DateTime: TDateTime
A konvertáladnó TdateTime típusú dátum/idő érték.
var SystemTime: TSystemTime
Ebben a paraméterben kapjuk meg az eredményt.
SystemTimeToDateTime
Osztály:
function SystemTimeToDateTime(
const SystemTime: TSystemTime
): TDateTime;
A függvény a TSystemTime típusú struktúrában tárolt dátum/idő értékeket konvertálja TDateTime típusú értékké, és ezzel az eredménnyel tér vissza.
DayOfWeek
Osztály:
function DayOfWeek(
const DateTime: TDateTime
): Word;
Ez a függvény a paraméterként megadott dátum/idő értékből megállapítja, hogy az a hét melyik napjára esik,és a nap számával tér vissza.
Date
Osztály:
function Date: TDateTime;
Az aktuális rendszerdátumot adja vissza TDateTime típusú értékként, a pontos időpont (óra, perc, stb.) nélkül.
Time
Osztály:
function Time: TDateTime;
Az aktuális rendszeridőt adja vissza TDateTime típusú értékként,a dátum rész (év, hónap, nap) nem veszi figyelembe.
Now
Osztály:
function Now: TDateTime;
Ez a függvény a Date és a Time függvények ötvözete, a pontos rendszerdátumot és időt adja vissza egy TDateTime típusban.
CurrentYear
Osztály:
function CurrentYear: Word;
Ezzel a függvénnyel lekérdezhetjük az aktuális, rendszerdátum szerinti évszámot.
IncAMonth
Osztály:
procedure IncAMonth(
var Year,
Month,
Day: Word;
NumberOfMonths: Integer = 1
);
Ez az eljárás a paraméterként megadott értékek által meghatározott dátumhoz hozzáadja a szintén paraméterként megadott hónapot, és az eredményt a paraméterekben adja vissza.
Paraméterek
var Year
A dátum évszámát adhatjuk meg ebben a paraméterben, és az eredmény dátum évszámát is ebben a paraméterben kapjuk vissza.
Month
A dátum hónapját adhatjuk meg ebben a paraméterben, és az eredmény dátum hónapját is ebben a paraméterben kapjuk vissza.
Day: Word
A dátum napját adhatjuk meg ebben a paraméterben, és az eredménydátum napját is ebben a paraméterben kapjuk vissza.
NumberOfMonths: Integer = 1
Az ebben a paraméterben megadott számú hónnappal módosítjuk a dátumot. A paraméter megadása nem kötelező, az alapértelmezett érték 1. Lehet negatív is.
ReplaceTime
Osztály:
procedure ReplaceTime(
var DateTime: TDateTime;
const NewTime: TDateTime
);
Az eljárás egy dátum/idő értékben az idő rész felcseréli egy másik időponttal.
Paraméterek
var DateTime: TDateTime
A módosítandó dátum/idő érték, az eredmény is ebben kapjuk vissza.
const NewTime: TDateTime
Az új időpontot (óra, perc, másodperc, ezredmásodperc) tartalmazó TDateTime típusú érték.
ReplaceDate
Osztály:
procedure ReplaceDate(
var DateTime: TDateTime;
const NewDate: TDateTime
);
A paraméterként megadott TDateTime típusú értékben a dátum rész helyére (év, hónap, nap) behelyettesíti a szintén paraméterként megadott dátumot.
Paraméterek
var DateTime: TDateTime
A módosítandó dátum/idő érték, az eredményt is ebben kapjuk vissza.
const NewDate: TDateTime
Az új dátumot tartalmazó TdateTime típusú érték.
IsLeapYear
Osztály:
function IsLeapYear(
Year: Word
): Boolean;
A függvény igaz értékkel tér vissza, ha a paraméterként megadott évszám szökőév, és hamissal, ha nem az.
Az az év számít szökőévnek, amelyet maradék nélkül oszthatunk 4-gyel, de nem osztható maradék nélkül 100-zal, vagy az évszám maradék nélkül osztható 400-zal.

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