Programowanie Delphi: procedury daty / godziny

click fraud protection

Porównuje dwie wartości TDateTime (zwraca „mniej”, „równy” lub „większy”). Ignoruje część Czas, jeśli obie wartości „spadają” tego samego dnia.

Funkcja CompareDateTime

Porównuje dwie wartości TDateTime (zwraca „mniej”, „równy” lub „większy”).

Deklaracja:
typ TValueRelationship = -1..1
funkcjonować CompareDateTime (const ADate, BDate: TDateTime): TValueRelationship

Opis:
Porównuje dwie wartości TDateTime (zwraca „mniej”, „równy” lub „większy”).

TValueRelationship reprezentuje związek między dwiema wartościami. Każda z trzech wartości TValueRelationship ma „sympatyczną” stałą symboliczną:
-1 [LessThanValue] Pierwsza wartość jest mniejsza niż druga wartość.
0 [EqualsValue] Dwie wartości są równe.
1 [GreaterThanValue] Pierwsza wartość jest większa niż druga wartość.
CompareDate powoduje:

LessThanValue, jeśli ADate jest wcześniejszy niż BDate.
EqualsValue, jeśli części daty i godziny zarówno ADate, jak i BDate są takie same
GreaterThanValue, jeśli ADate jest późniejszy niż BDate.

Przykład:

var ThisMoment, FutureMoment: TDateTime; ThisMoment: = Teraz; FutureMoment: = IncDay (ThisMoment, 6); // dodaje 6 dni. // CompareDateTime (ThisMoment, FutureMoment) zwraca LessThanValue (-1) // CompareDateTime (FutureMoment, ThisMoment) zwraca GreaterThanValue (1)
instagram viewer

Funkcja CompareTime

Porównuje dwie wartości TDateTime (zwraca „mniej”, „równy” lub „większy”). Ignoruje część Data, jeśli obie wartości występują jednocześnie.

Deklaracja:
typ TValueRelationship = -1..1
funkcjonować CompareDate (const ADate, BDate: TDateTime): TValueRelationship

Opis:
Porównuje dwie wartości TDateTime (zwraca „mniej”, „równy” lub „większy”). Ignoruje część Czas, jeśli obie wartości występują jednocześnie.

TValueRelationship reprezentuje związek między dwiema wartościami. Każda z trzech wartości TValueRelationship ma „sympatyczną” stałą symboliczną:
-1 [LessThanValue] Pierwsza wartość jest mniejsza niż druga wartość.
0 [EqualsValue] Dwie wartości są równe.
1 [GreaterThanValue] Pierwsza wartość jest większa niż druga wartość.
CompareDate powoduje:

LessThanValue, jeśli ADate występuje wcześniej w dniu określonym przez BDate.
Równa się, jeśli części czasu zarówno ADate, jak i BDate są takie same, ignorując część Data.
GreaterThanValue, jeśli ADate wystąpi później w dniu określonym przez BDate.

Przykład:

var ThisMoment, AnotherMoment: TDateTime; ThisMoment: = Teraz; AnotherMoment: = IncHour (ThisMoment, 6); // dodaje 6 godzin. // CompareDate (ThisMoment, AnotherMoment) zwraca LessThanValue (-1) // CompareDate (AnotherMoment, ThisMoment) zwraca GreaterThanValue (1

Funkcja daty

Zwraca bieżącą datę systemową.

Deklaracja:
rodzaj TDateTime = rodzaj Podwójnie;

funkcjonować data: TDateTime;

Opis:
Zwraca bieżącą datę systemową.

Integralną częścią wartości TDateTime jest liczba dni, które upłynęły od 12/30/1899. Część ułamkowa wartości TDateTime to ułamek 24-godzinnego dnia, który upłynął.

Aby znaleźć ułamkową liczbę dni między dwiema datami, po prostu odejmij dwie wartości. Podobnie, aby zwiększyć wartość daty i godziny o określoną ułamkową liczbę dni, wystarczy dodać liczbę ułamkową do wartości daty i godziny.

Przykład: ShowMessage („Today is” + DateToStr (Date));

Funkcja DateTimeToStr

Konwertuje wartość TDateTime na ciąg znaków (data i godzina).

Deklaracja:
rodzaj
TDateTime = rodzaj Podwójnie;

funkcjonować DayOfWeek (Data: TDateTime): liczba całkowita;

Opis:
Zwraca dzień tygodnia dla określonej daty.

DayOfWeek zwraca liczbę całkowitą od 1 do 7, gdzie niedziela jest pierwszym dniem tygodnia, a sobota jest siódmym.
DayOfTheWeek nie jest zgodny ze standardem ISO 8601.

Przykład:

const Days: tablica [1..7] ciągu = ('Niedziela poniedziałek wtorek środa czwartek piątek sobota') ShowMessage („Today is” + Days [DayOfWeek (Date)]); //Dziś jest poniedziałek

Funkcja DaysBetween

Podaje liczbę pełnych dni między dwiema określonymi datami.

Deklaracja:
funkcjonować
DaysBetween (const ANow, AThen: TDateTime): Integer;

Opis:
Podaje liczbę pełnych dni między dwiema określonymi datami.

Funkcja liczy tylko całe dni. Oznacza to, że zwróci 0 jako wynik różnicy między 05/01/2003 23:59:59 a 05/01/2003 23:59:58 - gdzie rzeczywista różnica wynosi jeden * cały * dzień minus 1 sekunda .

Przykład:

var dtNow, dtBirth: TDateTime; DaysFromBirth: liczba całkowita; dtNow: = Teraz; dtBirth: = EncodeDate (1973, 1, 29); DaysFromBirth: = DaysBetween (dtNow, dtBirth); ShowMessage („Zarko Gajic” istnieje ”+) IntToStr (DaysFromBirth) + „całe dni!”);

Funkcja DateOf

Zwraca tylko część Data wartości TDateTime, ustawiając Część czasu na 0.

Deklaracja:
funkcjonować
DateOf (Data: TDateTime): TDateTime

Opis:
Zwraca tylko część Data wartości TDateTime, ustawiając Część czasu na 0.

DateOf ustawia część czasu na 0, co oznacza północ.

Przykład:

var ThisMoment, ThisDay: TDateTime; ThisMoment: = Teraz; // -> 06/27/2003 10:29:16:138. ThisDay: = DateOf (ThisMoment); // Ten dzień: = 06/27/2003 00: 00: 00: 000

Funkcja DecodeDate

Oddziela wartości roku, miesiąca i dnia od wartości TDateTime.

Deklaracja:
procedura
DecodeDate (Data: TDateTime; var Rok, miesiąc, dzień: słowo) ;;

Opis:
Oddziela wartości roku, miesiąca i dnia od wartości TDateTime.

Jeśli podana wartość TDateTime jest mniejsza lub równa zero, parametry powrotu roku, miesiąca i dnia są zerowane.

Przykład:

var Y, M, D: Słowo; DecodeDate (data, Y, M, D); jeśli Y = 2000, to. ShowMessage („Jesteś w„ złym ”wieku!);

Funkcja EncodeDate
Tworzy wartość TDateTime na podstawie wartości roku, miesiąca i dnia.

Deklaracja:
funkcjonować
EncodeDate (rok, miesiąc, dzień: słowo): TDateTime

Opis:
Tworzy wartość TDateTime na podstawie wartości roku, miesiąca i dnia.

Rok musi wynosić od 1 do 9999. Prawidłowe wartości miesiąca to od 1 do 12. Prawidłowe wartości dnia to od 1 do 28, 29, 30 lub 31, w zależności od wartości miesiąca.
Jeśli funkcja się nie powiedzie, EncodeDate zgłasza wyjątek EConvertError.

Przykład:

var Y, M, D: Słowo; dt: TDateTime; y: = 2001; M: = 2; D: = 18; dt: = EncodeDate (Y, M, D); ShowMessage („Borna będzie. roczek w '+ DateToStr (dt))

Funkcja FormatDateTime
Formatuje wartość TDateTime do łańcucha.

Deklaracja:
funkcjonować
FormatDateTime (const Fmt: string; Wartość: TDateTime): strunowy;

Opis:
Formatuje wartość TDateTime do łańcucha.

FormatDateTime używa formatu określonego przez parametr Fmt. Obsługiwane specyfikatory formatu znajdują się w plikach pomocy Delphi.

Przykład:

var s: string; d: TDateTime;... d: = teraz; // dzisiaj + aktualny czas. s: = FormatDateTime ('dddd', d); // s: = środa. s: = FormatDateTime („„ Dzisiaj jest „dddd” minuta ”nn”, d) // s: = Dzisiaj jest środa, minuta 24

Funkcja IncDay

Dodaje lub odejmuje określoną liczbę dni od wartości daty.

Deklaracja:
funkcjonować
IncDay (ADate: TDateTime; Dni: Liczba całkowita = 1): TDateTime;

Opis:
Dodaje lub odejmuje określoną liczbę dni od wartości daty.

Jeśli parametr Days ma wartość ujemną, zwracana data to

Przykład:

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

Teraz funkcja

Zwraca bieżącą datę i godzinę systemową.

Deklaracja:
rodzaj
TDateTime = rodzaj Podwójnie;

funkcjonować Teraz: TDateTime;

Opis:
Zwraca bieżącą datę i godzinę systemową.

Integralną częścią wartości TDateTime jest liczba dni, które upłynęły od 12/30/1899. Część ułamkowa wartości TDateTime to ułamek 24-godzinnego dnia, który upłynął.

Aby znaleźć ułamkową liczbę dni między dwiema datami, po prostu odejmij dwie wartości. Podobnie, aby zwiększyć wartość daty i godziny o określoną ułamkową liczbę dni, wystarczy dodać liczbę ułamkową do wartości daty i godziny.

Przykład: ShowMessage („Teraz jest” + DateTimeToStr (Teraz));

Funkcja YearsBetween

Podaje liczbę pełnych lat między dwiema określonymi datami.

Deklaracja:
funkcjonować
Lata między (const SomeDate, AnotherDate: TDateTime): Integer;

Opis:
Podaje liczbę pełnych lat między dwiema określonymi datami.

YearsBetween zwraca przybliżenie oparte na założeniu 365,25 dni w roku.

Przykład:

var dtSome, dtAnother: TDateTime; DaysFromBirth: liczba całkowita; dtSome: = EncodeDate (2003, 1, 1); dtAnother: = EncodeDate (2003, 12, 31); YearsBetween (dtSome, dtAnother) == 1 // rok bez przestępowania. dtSome: = EncodeDate (2000, 1, 1); dtAnother: = EncodeDate (2000, 12, 31); YearsBetween (dtSome, dtAnother) == 0 // rok przestępny
instagram story viewer