Programare Delphi: rutine data / ora

Compara două valori TDateTime (returnează „mai puțin”, „egal” sau „mai mare”). Ignoră partea Time dacă ambele valori „cad” în aceeași zi.

Funcția CompareDateTime

Compara două valori TDateTime (returnează „mai puțin”, „egal” sau „mai mare”).

Declaraţie:
tip TValueRelationship = -1..1
funcţie CompareDateTime (const ADate, BDate: TDateTime): TValueRelationship

Descriere:
Compara două valori TDateTime (returnează „mai puțin”, „egal” sau „mai mare”).

TValueRelationship reprezintă relația dintre două valori. Fiecare din cele trei valori TValueRelationship are o constantă simbolică „apreciată”:
-1 [LessThanValue] Prima valoare este mai mică decât a doua valoare.
0 [EqualValue] Cele două valori sunt egale.
1 [GreaterThanValue] Prima valoare este mai mare decât a doua valoare.
ComparăDatele rezultate în:

LessThanValue dacă ADAT este mai devreme decât BDate.
EqualsValue dacă data și ora părților atât ADate cât și BDate sunt aceleași
GreaterThanValue dacă ADate este mai târziu decât BDate.

Exemplu:

var ThisMoment, FutureMoment: TDateTime; ThisMoment: = Acum; FutureMoment: = IncDay (ThisMoment, 6); // adaugă 6 zile. // CompareDateTime (ThisMoment, FutureMoment) returnează LessThanValue (-1) // CompareDateTime (FutureMoment, ThisMoment) returnează GreaterThanValue (1)
instagram viewer

Funcția CompareTime

Compara două valori TDateTime (returnează „mai puțin”, „egal” sau „mai mare”). Ignoră partea Data dacă ambele valori apar în același timp.

Declaraţie:
tip TValueRelationship = -1..1
funcţie CompareDate (const ADate, BDate: TDateTime): TValueRelationship

Descriere:
Compara două valori TDateTime (returnează „mai puțin”, „egal” sau „mai mare”). Ignoră partea Time dacă ambele valori apar în același timp.

TValueRelationship reprezintă relația dintre două valori. Fiecare din cele trei valori TValueRelationship are o constantă simbolică „apreciată”:
-1 [LessThanValue] Prima valoare este mai mică decât a doua valoare.
0 [EqualValue] Cele două valori sunt egale.
1 [GreaterThanValue] Prima valoare este mai mare decât a doua valoare.
ComparăDatele rezultate în:

LessThanValue dacă ADAT apare mai devreme în ziua specificată de BDate.
EqualsValue dacă părțile de timp ale ADAT și BDate sunt aceleași, ignorând partea Data.
GreaterThanValue dacă ADAT apare mai târziu în ziua specificată de BDate.

Exemplu:

var ThisMoment, AnotherMoment: TDateTime; ThisMoment: = Acum; AnotherMoment: = IncHour (ThisMoment, 6); // adaugă 6 ore. // CompareDate (ThisMoment, AnotherMoment) returnează LessThanValue (-1) // CompareDate (AnotherMoment, ThisMoment) returnează GreaterThanValue (1

Funcția datei

Returnează data curentă a sistemului.

Declaraţie:
tip TDateTime = tip Dubla;

funcţie data: TDateTime;

Descriere:
Returnează data curentă a sistemului.

Partea integrantă a unei valori TDateTime este numărul de zile care au trecut de la 30/12/1899. Partea fracțională a unei valori TDateTime este fracțiunea unei zile de 24 de ore care a trecut.

Pentru a găsi numărul fracționat de zile între două date, pur și simplu scade cele două valori. De asemenea, pentru a crește o dată și o dată cu un număr fracțional de zile, adăugați pur și simplu numărul fracțional la data și ora.

Exemplu: ShowMessage ('Astăzi este' + DateToStr (Data));

Funcția DateTimeToStr

Convertește o valoare TDateTime într-un șir (dată și oră).

Declaraţie:
tip
TDateTime = tip Dubla;

funcţie DayOfWeek (Data: TDateTime): număr întreg;

Descriere:
Întoarce ziua săptămânii pentru o dată dată.

DayOfWeek returnează un număr întreg între 1 și 7, unde duminica este prima zi a săptămânii și sâmbătă este a șaptea.
DayOfTheWeek nu respectă standardul ISO 8601.

Exemplu:

const Zile: array [1..7] de string = ('Duminica luni marti miercuri joi vineri sambata') ShowMessage ('Astăzi este' + Zile [DayOfWeek (Data)]); //Astazi este Luni

Funcția DaysBetween

Oferă numărul de zile întregi între două date specificate.

Declaraţie:
funcţie
DaysBetween (const ANow, AThen: TDateTime): Integer;

Descriere:
Oferă numărul de zile întregi între două date specificate.

Funcția contează doar zile întregi. Ceea ce înseamnă asta este că va întoarce 0 ca rezultat al diferenței între 05/01/2003 23:59:59 și 05/01/2003 23:59:58 - unde diferența reală este una * întreagă * zi, minus 1 secundă .

Exemplu:

var dtNow, dtBirth: TDateTime; DaysFromBirth: număr întreg; dtNow: = Acum; dtBirth: = EncodeDate (1973, 1, 29); DaysFromBirth: = DaysBetween (dtNow, dtBirth); ShowMessage ("Zarko Gajic" există "" + IntToStr (DaysFromBirth) + 'zile întregi!');

Funcție DateOf

Returnează numai porțiunea Date din valoarea TDateTime, setând Part time pe 0.

Declaraţie:
funcţie
DateOf (Data: TDateTime): TDateTime

Descriere:
Returnează numai porțiunea Date din valoarea TDateTime, setând Part time pe 0.

DateOf stabilește porțiunea de timp la 0, ceea ce înseamnă miezul nopții.

Exemplu:

var ThisMoment, ThisDay: TDateTime; ThisMoment: = Acum; // -> 06/27/2003 10:29:16:138. ThisDay: = DateOf (ThisMoment); // Această zi: = 27/06/2003 00: 00: 00: 000

Funcția DecodeDate

Separă valorile de an, lună și zi de o valoare TDateTime.

Declaraţie:
procedură
DecodeDate (Data: TDateTime; var An, lună, zi: cuvânt) ;;

Descriere:
Separă valorile de an, lună și zi de o valoare TDateTime.

Dacă valoarea TDateTime dată este mai mică sau egală cu zero, parametrii de întoarcere pentru anul, luna și ziua sunt toate la zero.

Exemplu:

var Y, M, D: Cuvânt; DecodeDate (Data, Y, M, D); dacă Y = 2000 atunci. ShowMessage („Vă aflați într-un secol„ greșit ”!);

Funcția EncodeDate
Creează o valoare TDateTime din valorile Anului, Luna și Ziua.

Declaraţie:
funcţie
EncodeDate (an, lună, zi: cuvânt): TDateTime

Descriere:
Creează o valoare TDateTime din valorile Anului, Luna și Ziua.

Anul trebuie să fie între 1 și 9999. Valorile lunii valabile sunt de la 1 la 12. Valorile valabile ale zilei sunt de la 1 la 28, 29, 30 sau 31, în funcție de valoarea lunii.
Dacă funcția eșuează, EncodeDate ridică o excepție EConvertError.

Exemplu:

var Y, M, D: Cuvânt; dt: TDateTime; y: = 2001; M: = 2; D: = 18; dt: = EncodeDate (Y, M, D); ShowMessage („Borna va fi. vechi de un an pe '+ DateToStr (dt))

Funcția FormatDateTime
Formatează o valoare TDateTime într-un șir.

Declaraţie:
funcţie
FormatDateTime (const Fmt: șir; Valoare: TDateTime): şir;

Descriere:
Formatează o valoare TDateTime într-un șir.

FormatDateTime utilizează formatul specificat de parametrul Fmt. Pentru specificații de format acceptat, consultați fișierele de ajutor Delphi.

Exemplu:

var s: șir; d: TDateTime;... d: = acum; // azi + ora curentă. s: = FormatDateTime ( 'dddd', d); // s: = miercuri s: = FormatDateTime ('' Astăzi este 'dddd' minut 'nn', d) // s: = Astăzi este miercuri minutul 24

Funcția IncDay

Adăugă sau scade un anumit număr de zile dintr-o valoare dată.

Declaraţie:
funcţie
IncDay (ADATE: TDateTime; Zile: Integer = 1): TDateTime;

Descriere:
Adăugă sau scade un anumit număr de zile dintr-o valoare dată.

Dacă parametrul Zile este negativ, data returnată este

Exemplu:

var Data: TDateTime; EncodeDate (Data, 2003, 1, 29) // 29 ianuarie 2003. IncDay (Data, -1) // 28 ianuarie 2003

Acum funcționează

Returnează data și ora sistemului actual.

Declaraţie:
tip
TDateTime = tip Dubla;

funcţie Acum: TDateTime;

Descriere:
Returnează data și ora sistemului actual.

Partea integrantă a unei valori TDateTime este numărul de zile care au trecut de la 30/12/1899. Partea fracțională a unei valori TDateTime este fracțiunea unei zile de 24 de ore care a trecut.

Pentru a găsi numărul fracționat de zile între două date, pur și simplu scade cele două valori. De asemenea, pentru a crește o dată și o dată cu un număr fracțional de zile, adăugați pur și simplu numărul fracțional la data și ora.

Exemplu: ShowMessage ('Acum este' + DateTimeToStr (Acum));

Funcția YearsBet Between

Oferă numărul de ani întregi între două date specificate.

Declaraţie:
funcţie
YearsBetween (const SomeDate, AnotherDate: TDateTime): Integer;

Descriere:
Oferă numărul de ani întregi între două date specificate.

YearsBetween returnează o aproximare bazată pe o presupunere de 365,25 zile pe an.

Exemplu:

var dtSome, dt Altele: TDateTime; DaysFromBirth: număr întreg; dtSome: = EncodeDate (2003, 1, 1); dtAnother: = EncodeDate (2003, 12, 31); YearsBetween (dtSome, dtAnother) == 1 // anul non-biseric. dtSome: = EncodeDate (2000, 1, 1); dtAnother: = EncodeDate (2000, 12, 31); YearsBetween (dtSome, dtAnother) == 0 // bis