Programovanie Delphi: Rutiny dátumu a času

Porovnáva dve hodnoty TDateTime (vracia „menej“, „rovnaké“ alebo „väčšie“). Ignoruje časovú časť, ak obe hodnoty „padnú“ v ten istý deň.

Funkcia CompareDateTime

Porovnáva dve hodnoty TDateTime (vracia „menej“, „rovnaké“ alebo „väčšie“).

vyhlásenie:
type TValueRelationship = -1..1
funkcie CompareDateTime (const ADate, BDate: TDateTime): TValueRelationship

Popis:
Porovnáva dve hodnoty TDateTime (vracia „menej“, „rovnaké“ alebo „väčšie“).

TValueRelationship predstavuje vzťah medzi dvoma hodnotami. Každá z troch hodnôt TValueRelationship má symbolickú konštantu „liked“:
-1 [LessThanValue] Prvá hodnota je nižšia ako druhá hodnota.
0 [EqualsValue] Dve hodnoty sú rovnaké.
1 [GreaterThanValue] Prvá hodnota je väčšia ako druhá hodnota.
PorovnaťDáta výsledkov v:

LessThanValue, ak je ADate starší ako BDate.
EqualsValue, ak sú dátum a čas časti ADate aj BDate rovnaké
GreaterThanValue, ak je služba ADate neskôr ako BDate.

Príklad:

var ThisMoment, FutureMoment: TDateTime; ThisMoment: = Now; FutureMoment: = IncDay (ThisMoment, 6); // pridáva 6 dní. // CompareDateTime (ThisMoment, FutureMoment) vracia LessThanValue (-1) // CompareDateTime (FutureMoment, ThisMoment) vracia GreaterThanValue (1)
instagram viewer

Funkcia Porovnanie času

Porovnáva dve hodnoty TDateTime (vracia „menej“, „rovnaké“ alebo „väčšie“). Ignoruje časť Dátum, ak sa obe hodnoty vyskytujú súčasne.

vyhlásenie:
type TValueRelationship = -1..1
funkcie CompareDate (const ADate, BDate: TDateTime): TValueRelationship

Popis:
Porovnáva dve hodnoty TDateTime (vracia „menej“, „rovnaké“ alebo „väčšie“). Ignoruje časovú časť, ak sa obe hodnoty vyskytujú súčasne.

TValueRelationship predstavuje vzťah medzi dvoma hodnotami. Každá z troch hodnôt TValueRelationship má symbolickú konštantu „liked“:
-1 [LessThanValue] Prvá hodnota je nižšia ako druhá hodnota.
0 [EqualsValue] Dve hodnoty sú rovnaké.
1 [GreaterThanValue] Prvá hodnota je väčšia ako druhá hodnota.
PorovnaťDáta výsledkov v:

LessThanValue, ak sa ADate vyskytne skôr v deň určený BDate.
EqualsValue, ak sú časové časti ADate aj BDate rovnaké, ignorujú sa dátumové časti.
GreaterThanValue, ak sa ADate vyskytne neskôr v deň určený BDate.

Príklad:

var ThisMoment, AnotherMoment: TDateTime; ThisMoment: = Now; AnotherMoment: = IncHour (ThisMoment, 6); // pridáva 6 hodín. // CompareDate (ThisMoment, AnotherMoment) vráti LessThanValue (-1) // CompareDate (AnotherMoment, ThisMoment) vráti GreaterThanValue (1

Funkcia dátumu

Vráti aktuálny systémový dátum.

vyhlásenie:
typ TDateTime = typ zdvojnásobiť;

funkcie dátum: TDateTime;

Popis:
Vráti aktuálny systémový dátum.

Neoddeliteľnou súčasťou hodnoty TDateTime je počet dní, ktoré uplynuli od 30. 12. 1899. Zlomková časť hodnoty TDateTime je zlomok 24 hodinového dňa, ktorý uplynul.

Ak chcete nájsť zlomkový počet dní medzi dvoma dátumami, jednoducho odčítajte tieto dve hodnoty. Podobne, ak chcete zvýšiť hodnotu dátumu a času o určitý zlomkový počet dní, jednoducho pridajte zlomkové číslo k hodnote dátumu a času.

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

Funkcia DateTimeToStr

Skonvertuje hodnotu TDateTime na reťazec (dátum a čas).

vyhlásenie:
typ
TDateTime = typ zdvojnásobiť;

funkcie DayOfWeek (Dátum: TDateTime): celé číslo;

Popis:
Vráti deň v týždni pre daný dátum.

DayOfWeek vracia celé číslo od 1 do 7, pričom nedeľa je prvý deň v týždni a sobota je siedma.
DayOfTheWeek nie je v súlade s normou ISO 8601.

Príklad:

konšt Days: pole [1..7] ('Nedeľa pondelok utorok streda štvrtok piatok sobota') ShowMessage ('Today is' + Days [DayOfWeek (Date)]); //Dnes je pondelok

Funkcia Dni medzi nimi

Udáva počet celých dní medzi dvoma zadanými dátumami.

vyhlásenie:
funkcie
DaysBetween (konštantný ANow, AThen: TDateTime): Celé číslo;

Popis:
Udáva počet celých dní medzi dvoma zadanými dátumami.

Funkcia sa počíta iba celé dni. To znamená, že vráti 0 ako výsledok rozdielu medzi 05/01/2003 23:59:59 a 05/01/2003 23:59:58 - kde skutočný rozdiel je jeden * celý * deň mínus 1 sekunda ,

Prí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é dni!“);

Funkcia DateOf

Vráti iba časovú časť hodnoty TDateTime nastavením časovej časti na 0.

vyhlásenie:
funkcie
DateOf (Dátum: TDateTime): TDateTime

Popis:
Vráti iba časovú časť hodnoty TDateTime nastavením časovej časti na 0.

DateOf nastaví časovú časť na 0, čo znamená o polnoci.

Príklad:

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

Dekódovacia funkcia

Oddeľuje hodnoty roku, mesiaca a dňa od hodnoty TDateTime.

vyhlásenie:
procedúra
DecodeDate (Dátum: TDateTime; var Rok, mesiac, deň: slovo) ;;

Popis:
Oddeľuje hodnoty roku, mesiaca a dňa od hodnoty TDateTime.

Ak je daná hodnota TDateTime menšia alebo rovná nule, parametre vrátenia rok, mesiac a deň sú nastavené na nulu.

Príklad:

var Y, M, D: Slovo; Dekódovací dátum (dátum, Y, M, D); ak potom Y = 2000. ShowMessage ('Ste v „zlom“ storočí!);

Funkcia EncodeDate
Vytvorí hodnotu TDateTime z hodnôt roku, mesiaca a dňa.

vyhlásenie:
funkcie
EncodeDate (rok, mesiac, deň: slovo): TDateTime

Popis:
Vytvorí hodnotu TDateTime z hodnôt roku, mesiaca a dňa.

Rok musí byť medzi 1 a 9999. Platné hodnoty mesiaca sú 1 až 12. Platné hodnoty dňa sú 1 až 28, 29, 30 alebo 31, v závislosti od hodnoty mesiaca.
Ak funkcia zlyhá, EncodeDate vyvolá výnimku EConvertError.

Príklad:

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

Funkcia FormatDateTime
Naformátuje hodnotu TDateTime na reťazec.

vyhlásenie:
funkcie
FormatDateTime (const Fmt: string; Hodnota: TDateTime): povrázok;

Popis:
Naformátuje hodnotu TDateTime na reťazec.

FormatDateTime používa formát určený parametrom Fmt. Informácie o podporovaných špecifikátoroch formátu nájdete v súboroch pomocníka Delphi.

Príklad:

var s: string; d: TDateTime;... d: = Teraz; // dnes + aktuálny čas. s: = FormatDateTime ( 'dddd', d); // s: = streda. s: = FormatDateTime ('"Dnes je" dddd "minúta" nn', d) // s: = Dnes je streda 24 minút

Funkcia IncDay

Pridá alebo odčíta daný počet dní od hodnoty dátumu.

vyhlásenie:
funkcie
IncDay (ADate: TDateTime; Dni: Celé číslo = 1): TDateTime;

Popis:
Pridá alebo odčíta daný počet dní od hodnoty dátumu.

Ak je parameter Days záporný, vrátený dátum je

Príklad:

dátum var: TDateTime; EncodeDate (Dátum, 2003, 1, 29) // 29. Januára 2003. IncDay (dátum, -1) // 28. januára 2003

Teraz funguje

Vráti aktuálny systémový dátum a čas.

vyhlásenie:
typ
TDateTime = typ zdvojnásobiť;

funkcie Teraz: TDateTime;

Popis:
Vráti aktuálny systémový dátum a čas.

Neoddeliteľnou súčasťou hodnoty TDateTime je počet dní, ktoré uplynuli od 30. 12. 1899. Zlomková časť hodnoty TDateTime je zlomok 24 hodinového dňa, ktorý uplynul.

Ak chcete nájsť zlomkový počet dní medzi dvoma dátumami, jednoducho odčítajte tieto dve hodnoty. Podobne, ak chcete zvýšiť hodnotu dátumu a času o určitý zlomkový počet dní, jednoducho pridajte zlomkové číslo k hodnote dátumu a času.

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

Roky medzi funkciami

Uvádza počet celých rokov medzi dvoma určenými dátumami.

vyhlásenie:
funkcie
YearsBetween (const SomeDate, AnotherDate: TDateTime): Celé číslo;

Popis:
Uvádza počet celých rokov medzi dvoma určenými dátumami.

Roky medzi výnosmi aproximácia založená na predpoklade 365,25 dní v roku.

Príklad:

var dtSome, dtĎalší: TDateTime; DaysFromBirth: integer; dtSome: = EncodeDate (2003, 1, 1); dtAnother: = EncodeDate (2003, 12, 31); YearsBetween (dtSome, dtAnother) == 1 // neprestupný rok. dtSome: = EncodeDate (2000, 1, 1); dtAnother: = EncodeDate (2000, 12, 31); YearsBetween (dtSome, dtAnother) == 0 // priestupný rok