Programování Delphi: rutiny data / času

Porovná dvě hodnoty TDateTime (vrací "méně", "rovno" nebo "větší"). Ignoruje část Time, pokud obě hodnoty „padnou“ ve stejný den.

Funkce CompareDateTime

Porovná dvě hodnoty TDateTime (vrací "méně", "rovno" nebo "větší").

Prohlášení:
type TValueRelationship = -1..1
funkce CompareDateTime (konst ADate, BDate: TDateTime): TValueRelationship

Popis:
Porovná dvě hodnoty TDateTime (vrací "méně", "rovno" nebo "větší").

TValueRelationship představuje vztah mezi dvěma hodnotami. Každá ze tří hodnot TValueRelationship má „oblíbenou“ symbolickou konstantu:
-1 [LessThanValue] První hodnota je menší než druhá hodnota.
0 [EqualsValue] Dvě hodnoty jsou stejné.
1 [GreaterThanValue] První hodnota je větší než druhá hodnota.
PorovnatDatové výsledky v:

LessThanValue, pokud je ADate starší než BDate.
EqualsValue, pokud jsou datum a čas části ADate i BDate stejné
GreaterThanValue, pokud je ADate pozdější než BDate.

Příklad:

var ThisMoment, FutureMoment: TDateTime; ThisMoment: = Now; FutureMoment: = IncDay (ThisMoment, 6); // přidává 6 dní. // CompareDateTime (ThisMoment, FutureMoment) vrátí LessThanValue (-1) // CompareDateTime (FutureMoment, ThisMoment) vrátí GreaterThanValue (1)
instagram viewer

Funkce CompareTime

Porovná dvě hodnoty TDateTime (vrací "méně", "rovno" nebo "větší"). Ignoruje část Date, pokud se obě hodnoty vyskytnou současně.

Prohlášení:
type TValueRelationship = -1..1
funkce PorovnatDátum (konst ADate, BDate: TDateTime): TValueRelationship

Popis:
Porovná dvě hodnoty TDateTime (vrací "méně", "rovno" nebo "větší"). Ignoruje část Time, pokud se obě hodnoty vyskytnou současně.

TValueRelationship představuje vztah mezi dvěma hodnotami. Každá ze tří hodnot TValueRelationship má „oblíbenou“ symbolickou konstantu:
-1 [LessThanValue] První hodnota je menší než druhá hodnota.
0 [EqualsValue] Dvě hodnoty jsou stejné.
1 [GreaterThanValue] První hodnota je větší než druhá hodnota.
PorovnatDatové výsledky v:

LessThanValue, pokud se ADate objeví dříve v den určený BDate.
EqualsValue, pokud jsou časové části ADate i BDate stejné, ignorují se datumové části.
GreaterThanValue, pokud se ADate objeví později v den určený BDate.

Příklad:

var ThisMoment, AnotherMoment: TDateTime; ThisMoment: = Now; AnotherMoment: = IncHour (ThisMoment, 6); // přidává 6 hodin. // CompareDate (ThisMoment, AnotherMoment) vrátí LessThanValue (-1) // CompareDate (AnotherMoment, ThisMoment) vrátí GreaterThanValue (1

Funkce data

Vrátí aktuální systémové datum.

Prohlášení:
typ TDateTime = typ Dvojnásobek;

funkce datum: TDateTime;

Popis:
Vrátí aktuální systémové datum.

Nedílnou součástí hodnoty TDateTime je počet dní, které uplynuly od 30/18/9999. Zlomková část hodnoty TDateTime je zlomek 24 hodinového dne, který uplynul.

Chcete-li najít zlomkový počet dní mezi dvěma daty, jednoduše odečtěte dvě hodnoty. Podobně pro zvýšení hodnoty data a času o určitý zlomkový počet dní jednoduše přidejte zlomkové číslo k hodnotě data a času.

Příklad: ShowMessage ('Today is' + DateToStr (Date));

Funkce DateTimeToStr

Převede hodnotu TDateTime na řetězec (datum a čas).

Prohlášení:
typ
TDateTime = typ Dvojnásobek;

funkce DayOfWeek (Date: TDateTime): integer;

Popis:
Vrátí den v týdnu pro dané datum.

DayOfWeek vrátí celé číslo mezi 1 a 7, kde neděle je první den v týdnu a sobota je sedmá.
DayOfTheWeek není v souladu s normou ISO 8601.

Příklad:

const Days: pole [1..7] řetězce = ('Neděle pondělí úterý středa čtvrtek pátek sobota') ShowMessage ('Today is' + Days [DayOfWeek (Date)]); //Dnes je pondělí

Funkce DaysBetween

Udává počet celých dnů mezi dvěma zadanými daty.

Prohlášení:
funkce
DaysBetween (const ANow, AThen: TDateTime): Celé číslo;

Popis:
Udává počet celých dnů mezi dvěma zadanými daty.

Funkce se počítá pouze celé dny. To znamená, že vrátí 0 jako výsledek rozdílu mezi 05/01/2003 23:59:59 a 05/01/2003 23:59:58 - kde skutečný rozdíl je jeden * celý * den mínus 1 sekunda .

Příklad:

var dtNow, dtBirth: TDateTime; DaysFromBirth: integer; dtNow: = Now; dtBirth: = EncodeDate (1973, 1, 29); DaysFromBirth: = DaysBetween (dtNow, dtBirth); ShowMessage ('Zarko Gajic' existuje '' + IntToStr (DaysFromBirth) + 'celé dny!');

Funkce DateOf

Vrátí pouze část Datum hodnoty TDateTime nastavením části Čas na 0.

Prohlášení:
funkce
DateOf (Date: TDateTime): TDateTime

Popis:
Vrátí pouze část Datum hodnoty TDateTime nastavením části Čas na 0.

DateOf nastaví časovou část na 0, což znamená půlnoc.

Příklad:

var ThisMoment, ThisDay: TDateTime; ThisMoment: = Now; // -> 06/27/2003 10:29:16:138. ThisDay: = DateOf (ThisMoment); // Tento den: = 06/27/2003 00: 00: 00: 000

Funkce DecodeDate

Oddělí hodnoty roku, měsíce a dne od hodnoty TDateTime.

Prohlášení:
postup
DecodeDate (Datum: TDateTime; var Rok, Měsíc, Den: Slovo) ;;

Popis:
Oddělí hodnoty roku, měsíce a dne od hodnoty TDateTime.

Pokud je daná hodnota TDateTime menší nebo rovna nule, parametry návratu roku, měsíce a dne jsou nastaveny na nulu.

Příklad:

var Y, M, D: Slovo; DecodeDate (datum, Y, M, D); pokud tedy Y = 2000. ShowMessage ('Jsi v "špatném" století!);

Funkce EncodeDate
Vytvoří hodnotu TDateTime z hodnot roku, měsíce a dne.

Prohlášení:
funkce
EncodeDate (rok, měsíc, den: slovo): TDateTime

Popis:
Vytvoří hodnotu TDateTime z hodnot roku, měsíce a dne.

Rok musí být mezi 1 a 9999. Platné hodnoty měsíce jsou 1 až 12. Platné hodnoty dne jsou 1 až 28, 29, 30 nebo 31, v závislosti na hodnotě měsíce.
Pokud funkce selže, EncodeDate vyvolá výjimku EConvertError.

Příklad:

var Y, M, D: Slovo; dt: TDateTime; y: = 2001; M: = 2; D: = 18; dt: = EncodeDate (Y, M, D); ShowMessage ('Borna bude. jeden rok starý v '+ DateToStr (dt))

Funkce FormatDateTime
Naformátuje hodnotu TDateTime na řetězec.

Prohlášení:
funkce
FormatDateTime (konst Fmt: string; Hodnota: TDateTime): tětiva;

Popis:
Naformátuje hodnotu TDateTime na řetězec.

FormatDateTime používá formát určený parametrem Fmt. Podporované specifikátory formátu najdete v souborech nápovědy Delphi.

Příklad:

var s: string; d: TDateTime;... d: = Now; // dnes + aktuální čas. s: = FormatDateTime ('dddd', d); // s: = středa. s: = FormatDateTime ('"Dnes je" dddd "minuta" nn', d) // s: = Dnes je středa minuta 24

Funkce IncDay

Přidá nebo odečte daný počet dní od hodnoty data.

Prohlášení:
funkce
IncDay (ADate: TDateTime; Days: Integer = 1): TDateTime;

Popis:
Přidá nebo odečte daný počet dní od hodnoty data.

Pokud je parametr Days záporný, je vrácené datum

Příklad:

var datum: TDateTime; EncodeDate (Datum, 2003, 1, 29) // 29. ledna 2003. IncDay (Datum, -1) // 28. ledna 2003

Nyní funguje

Vrátí aktuální systémové datum a čas.

Prohlášení:
typ
TDateTime = typ Dvojnásobek;

funkce Nyní: TDateTime;

Popis:
Vrátí aktuální systémové datum a čas.

Nedílnou součástí hodnoty TDateTime je počet dní, které uplynuly od 30/18/9999. Zlomková část hodnoty TDateTime je zlomek 24 hodinového dne, který uplynul.

Chcete-li najít zlomkový počet dní mezi dvěma daty, jednoduše odečtěte dvě hodnoty. Podobně pro zvýšení hodnoty data a času o určitý zlomkový počet dní jednoduše přidejte zlomkové číslo k hodnotě data a času.

Příklad: ShowMessage ('Now is' + DateTimeToStr (Now));

Funkce YearsBetween

Udává počet celých let mezi dvěma zadanými daty.

Prohlášení:
funkce
Roky mezi (konst SomeDate, AnotherDate: TDateTime): Celé číslo;

Popis:
Udává počet celých let mezi dvěma zadanými daty.

YearsBetween se vrací aproximace na základě předpokladu 365,25 dní v roce.

Příklad:

var dtSome, dtDalší: TDateTime; DaysFromBirth: integer; dtSome: = EncodeDate (2003, 1, 1); dtAnother: = EncodeDate (2003, 12, 31); YearsBetween (dtSome, dtAnother) == 1 // nepřestupný rok. dtSome: = EncodeDate (2000, 1, 1); dtAnother: = EncodeDate (2000, 12, 31); YearsBetween (dtSome, dtAnother) == 0 // přestupný rok