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

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

forráskód letöltése
A 8. és egyben befejező részben azokról a függvényekről lesz szó, amelyekkel egy TDateTime típusú dátumot sztringgé tudunk alakítani, akár a Windows Területi beállításai szerinti formátumban, akár saját, általunk meghatározott formátumban. Ugyanezt fordítva is megtehetjük, tehát azt is megvizsgáljuk, hogy milyen lehetőségeink vannak egy sztringből dátum/idő érték előállítására. A függvények ismertetésén kívül a dátum és idő kezelésével kapcsolatos konstansokat is bemutatjuk ebben a részben.
A dátumok és időpontok kezelésével kapcsolatos konstansok és globális változók az alábbi táblázatban láthatók:
Név Érték Jelentés
DaysPerWeek 7 napok száma egy héten belül
WeeksPerFortnight 2 hetek száma egy kéthetes időszakban, magyarul két hét
MonthsPerYear 12 hónapok száma egy évben
YearsPerDecade 10 évek száma egy évtizedben
YearsPerCentury 100 évek száma egy évszázadban
YearsPerMillennium 1000 évek száma egy évezredben
DayMonday 1 hétfő
DayTuesday 2 kedd
DayWednesday 3 szerda
DayThursday 4 csütörtök
DayFriday 5 péntek
DaySaturday 6 szombat
DaySunday 7 vasárnap
OneHour 1 / HoursPerDay óra értéke tizedesben kifejezve. A TDateTime típusú értéknél az érték tört része határozza meg az időt.
OneMinute 1 / MinsPerDay percek száma naponta, tizedesben kifejezve
OneSecond 1 / SecsPerDay másodpercek száma naponta, tizedesben kifejezve
OneMillisecond 1 / MSecsPerDay ezredmásodpercek száma naponta, tizedesben kifejezve
RecodeLeaveFieldAsIs High(Word) ezt a konstanst a Recode függvényeknél használhatjuk azok helyett a paraméterek helyett, amelyeket nem akarunk a dátum módosításánál felhasználni.
ApproxDaysPerMonth 30.4375 a napok száma egy hónapra lebontva (átlagos érték). Ez egy változó, tehát ez az érték módosítható.
ApproxDaysPerYear 365.25 a napok száma egy évben (átlagos érték). Ez is változó, tehát ennek értéke is változtatható.
HoursPerDay 24 az órák száma egy nap alatt
MinsPerDay HoursPerDay * 60 a percek száma egy nap alatt
SecsPerDay MinsPerDay * 60 a másodpercek száma egy nap alatt
MSecsPerDay SecsPerDay * 1000 az ezredmásodpercek száma egy nap alatt
DateDelta 693594 az időszámítás óta 1899.dec.31-ig eltelt napok száma
UnixDateDelta 25569 a TDateTime típusú bázis dátum (1899.12.31), és a UNIX-ban használt bázis dátum (1970.01.01) között lévő napok száma.
A következő tömb típusú konstans a napok számát adja meg. A tömb egyetlen indexe egy logikai típusú érték, tehát a tömb csak két elemet tartalmaz. Az index értéke azt mondja meg, hogy szökőévről, vagy nem szökőévről van-e szó.
DaysPerYear: array [Boolean] of Word = (365, 366);
A dátum és idő formátumát meghatározó globális változók:
Változó neve Jelentés
DateSeparator dátumelválasztó karakter
ShortDateFormat a rövid dátumformátumot tartalmazó sztring
LongDateFormat a hosszú dátumformátumot tartalmazó sztring
TimeSeparator időelválasztó karakter
TimeAMString a délelőttöt jelző karakterek (pl. „de”, „am”).
TimePMString a délutánt jelző karakterek (pl. „du”, „pm”).
ShortTimeFormat a rövid időformátumot tartalmazó sztring
LongTimeFormat a hosszú időformátumot tartalmazó sztring
ShortMonthNames a hónapok rövidített neveit tartalmazó 12 elemű tömb. Az első elem indexe 1 (január).
LongMonthNames a hónapok neveit tartalmazó 12 elemű tömb. Az első elem indexe 1 (január).
ShortDayNames a napok rövidített neveit tartalmazó 7 elemű tömb. Az első elem indexe 1 (hétfő).
LongDayNames a napok neveit tartalmazó 7 elemű tömb. Az első elem indexe 1 (hétfő).
DateToStr
Osztály:
function DateToStr(
const DateTime: TDateTime
): string;
Ez a függvény a paraméterként megadott TDateTime típusú dátum/idő értékből a dátumot sztringgé alakítja, a ShortDateFormat globális változó által meghatározott formátumban, és az eredmény sztringgel tér vissza. Az időt nem veszi figyelembe, az nem fog szerepelni a sztringben.
A ShortDateFormat változó a Windows-ban beállított rövid dátum formátumot tartalmazza.
TimeToStr
Osztály:
function TimeToStr(
const DateTime: TDateTime
): string;
A függvény a paraméterként megadott TDateTime típusú dátum/idő értékből az időt (óra, perc, másodperc) sztringgé alakítja, a LongTimeFormat által meghatározott formátumban, és az eredmény sztringgel tér vissza. A paraméterben megadott dátumot nem veszi figyelembe.
A LongTimeFormat változó a Windows-ban beállított hosszú idő formátumot tartalmazza.
DateTimeToStr
Osztály:
function DateTimeToStr(
const DateTime: TDateTime
): string;
A függvény a paraméterként megadott TDateTime típusú dátum/idő értéket sztringgé alakítja a ShortDateFormat és LongTimeFormat globális változókban tárolt formátumoknak megfelelően.
StrToDate
Osztály:
function StrToDate(
const S: string
): TDateTime;
A paraméterként megadott sztringben lévő dátumot TDateTime típusú értékké alakítja, amennyiben ez lehetséges, és kapott eredménnyel tér vissza. Ha a konvertálás nem lehetséges, akkor egy EConvertError kivétel keletkezik.
A sztringnek két, vagy három számot kell tartalmaznia a DateSeparator globális változóban tárolt dátum elválasztó karakterrel elválasztva. Ha a sztring csak két számot tartalmaz, akkor azokat hónapként és napként próbálja értelmezni, és az évszámot az aktuális évvel helyettesíti. Az évszámot megadhatjuk két karakteren tárolva is, egy 0-99 közötti számmal.
A DateSeparator változó a Windows-ban beállított Dátumelválasztó karakter(eke)t tartalmazza.
StrToDateDef
Osztály:
function StrToDateDef(
const S: string;
const Default: TDateTime
): TDateTime;
A függvény hasonló az StrToDate függvényhez, azzal a különbséggel, hogy megadhatunk egy alapértelmezett dátumot is. Ha a sztring átalakítása sikerül, akkor a konvertált értéket kapjuk vissza, ellenkező esetben az alapértelmezettnek megadott dátumot.
Paraméterek
const S: string
A konvertálandó sztring.
const Default: TDateTime
Az alapértelmezett dátum.
TryStrToDate
Osztály:
function TryStrToDate(
const S: string;
out Value: TDateTime
): Boolean;
A függvény hasonló az StrToDate függvényhez, azzal a különbséggel, hogy az eredményt is paraméterben kapjuk vissza, és a sikertelen átalakítás nem okoz kivételt.
Paraméterek
const S: string
A konvertálandó sztring.
out Value: TDateTime
Ebben a paraméterben kapjuk vissza a dátumot.
Visszatérési érték
A visszatérési érték igaz, ha a konvertálás sikeres volt, és hamis, ha nem.
StrToTime
Osztály:
function StrToTime(
const S: string
): TDateTime;
Ez a függvény a paraméterként megadott sztringet konvertálja TDateTime típusú értékké. A sztring csak az időt tartalmazhatja (óra, perc, és másodperc), két vagy három szám formájában. A számokat a TimeSeparator globális változóban tárolt idő elválasztó karakterekkel kell tagolni. Ha csak két számot adunk meg, akkor azokat óraként és percként értelmezi, míg az opcionális harmadik szám a másodpercet adja meg.
A TimeSeparator a Windows-ban beállított Időelválasztó karakter(eke)t tartalmazza.
StrToTimeDef
Osztály:
function StrToTimeDef(
const S: string;
const Default: TDateTime
): TDateTime;
Hasonló az StrToTime függvényhez, de megadhatunk egy alapértelmezett értéket, ami sikertelen konvertáláskor megadja a függvény visszatérési értékét.
Paraméterek
const S: string
A konvertálandó sztring, amely az óra, perc és az opcionális másodperc értékeit tartalmazza.
const Default: TDateTime
Az alapértelmezett idő, amit hibás konvertáláskor kapunk vissza.
TryStrToTime
Osztály:
function TryStrToTime(
const S: string;
out Value: TDateTime
): Boolean;
Ez a függvény hasonló az StrToTime függvényhez, de az eredményt paraméterben kapjuk vissza, és hibás konvertáláskor sem okoz kivételt.
Paraméterek
const S: string
A konvertálandó sztring.
out Value: TDateTime
Ebben a paraméterben kapjuk vissza az időt.
Visszatérési érték
A visszatérési érték igaz, ha a konvertálás sikeres volt, és hamis, ha nem.
StrToDateTime
Osztály:
function StrToDateTime(
const S: string
): TDateTime;
A paraméterként megadott sztringben tárolt dátumot is időpontot konvertálja TDateTime típusú /dátum/idő értékké. A sztringnek a Windows-ban beállított dátum és idő formátumoknak meg kell felelnie. A függvény visszatérési értéke a konvertált dátum/idő érték. Ha a konvertálás nem lehetséges, akkor EConvertError kivételt okoz.
StrToDateTimeDef
Osztály:
function StrToDateTimeDef(
const S: string;
const Default: TDateTime
): TDateTime;
Ez a függvény az StrToDateTime függvénytől annyiban különbözik, hogy megadhatunk egy alapértelmezett értéket arra az esetre, ha a konvertálás nem sikerülne.
Paraméterek
const S: string
A konvertálandó sztring, amely tartalmazza a dátumot és időt. A formátumnak meg kell felelnie a Windows-ban beállított formátumoknak.
const Default: TDateTime
Ha a konvertálás nem sikerülne, akkor az ebben a paraméterben megadott időpontot kapjuk vissza.
TryStrToDateTime
Osztály:
function TryStrToDateTime(
const S: string;
out Value: TDateTime
): Boolean;
A függvény hasonló az StrTodateTime függvényhez, de az eredményt paraméterben kapjuk meg, és akkor sem okoz EConvertError kivételt, ha a konvertálás nem volt sikeres.
Paraméterek
const S: string
A dátumot és időt tartalmazó sztring, amit TDateTime típusú értékké kell konvertálni.
out Value: TDateTime
Ebben a paraméterben kapjuk meg a konvertált értéket.
Visszatérési érték
A függvény visszatérési értéke igaz, ha a konvertálás sikerült, és hamis, ha nem.
FormatDateTime
Osztály:
function FormatDateTime(
const Format: string;
DateTime: TDateTime
): string;
A függvény segítségével egy TDateTime típusú dátum/idő értéket tudunk sztringgé konvertálni úgy, hogy a formátumot mi adhatjuk meg.
Paraméterek
const Format: string
Ebben a paraméterben adhatjuk meg az eredmény sztring formátumát. A formátum sztringben különböző karaktereket használhatunk az egyes időegységek jelölésére. A formátumot meghatározó karakterek az alábbi táblázatban láthatók (figyeljünk a kis- és nagybetűk közötti különbségre):
Karakterek Jelentés
c A dátum a ShortDateFormat (rövid dátum formátum) változóban megadott formátumban, ezt követi az idő a ShortTimeFormat (rövid idő formátum) változóban megadott formátumban. Az idő csak akkor jelenik meg, ha meg van adva (a dátum érték tört része nem 0).
d A nap száma bevezető 0 nélkül.
dd A nap száma 0-val két karakterre igazítva.
ddd A nap nevének rövidített változata (a ShortDayNames változóból). Például „csüt.”.
dddd A nap neve a LongDayNames változóból. Például „Csütörtök’.
ddddd A dátum a ShortDateFormat változónak megfelelően.
dddddd A dátum a LongDateFormat (hosszú dátum formátum) változónak megfelelően.
m A hónap száma bevezető 0 nélkül.
mm A hónap száma 0-val két karakterre igazítva.
mmm A hónap rövidített neve a ShortMonthNames változóból.
mmmm A hónap neve a LongMonthNames változóból.
yy Az évszám két karakteren.
yyyy Az évszám négy karakteren.
h Az óra bevezető 0 nélkül.
hh Az óra 0-val két karakterre igazítva.
n A perc bevezető 0 nélkül.
nn A perc 0-val két karakterre igazítva.
s A másodperc bevezető 0 nélkül.
ss A másodperc 0-val két karakterre igazítva.
z Az ezredmásodperc bevezető nullák nélkül.
zzz Az ezredmásodperc 0-val három karakterre igazítva.
t Az idő a ShortTimeFormat változónak megfelelően
tt Az idő a LongTimeFormat (hosszú idő formátum) változónak megfelelően.
am/pm Az idő után a napszak is megjelenik („am.” vagy „pm.”). Használhatók vegyesen kis- és nagybetűk is, az eredmény ennek megfelelő lesz. Ebben az esetben csak a 12 órás kijelzés működik.
a/p Hasonló az előzőhöz, de csak egy betűvel.
ampm 12 órás idő megjelenítés, a TimeAMString és a TimePMString változókban megadott értékekkel jelezve a napszakot („de.” vagy „du.”).
/ A DateSeparator változóban beállított dátum elválasztó karakter.
: A TimeSeparator változóban beállított idő elválasztó karakter.
'xx'/"xx" A karakterek egyszeres, vagy dupla idézőjelek között jelennek meg.
DateTime: TDateTime
A konvertálandó dátumot és időt tartalmazó TdatTime típusú érték.
Visszatérési érték
A függvény visszatérési értéke a formátum sztringnek megfelelően átalakított dátumidő érték lesz sztring formátumban.
DateTimeToString
Osztály:
procedure DateTimeToString(
var Result: string;
const Format: string;
DateTime: TDateTime
);
Ez az eljárás szintén a dátum/idő átalakítását teszi lehetővé a megadott formátumnak megfelelően, de itt az eredményt paraméterben kapjuk meg.
Paraméterek
var Result: string
Ebben a paraméterben kapjuk meg a formátum sztringnek megfelelően átalakított dátum/idő értéket sztring formátumban.
const Format: string
Ebben a paraméterben adhatjuk meg a formátum sztringet (lásd FormatDateTime függvény).
DateTime: TDateTime
Az ebben a paraméterben megadott TDateTime típusú dátum/idő értéket konvertáljuk sztringgé.
FloatToDateTime
Osztály:
function FloatToDateTime(
const Value: Extended
): TDateTime;
Ez a függvény a paraméterként megadott valós számot konvertálja TDateTime típusú értékké. Ha a megadott érték nem esik az érvényes tartományba, akkor egy SInvalidDateTimeFloat kivétel keletkezik.
Paraméterek
const Value: Extended
A konvertálandó valós szám.
VarToDateTime
Osztály:
function VarToDateTime(
const V: Variant
): TDateTime
Ezzel a függvénnyel egy variant típusú értéket konvertálhatunk TDateTime típusú értékké. A variant típus lehet akár egy olyan sztring is, amely valamilyen szabályos formátumban tartalmazza a dátumot, időt.

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