Delphi programmeerimine: kuupäeva ja kellaaja rutiin

Võrdleb kahte TDateTime väärtust (tagastab väärtused "vähem", "võrdsed" või "suuremad"). Eirab osa aega, kui mõlemad väärtused "langevad" samal päeval.

Funktsioon CompareDateTime

Võrdleb kahte TDateTime väärtust (tagastab väärtused "vähem", "võrdsed" või "suuremad").

Deklaratsioon:
tüüp TValueRelationship = -1..1
funktsiooni VõrdleDateTime (const ADate, BDate: TDateTime): TValueRelationship

Kirjeldus:
Võrdleb kahte TDateTime väärtust (tagastab väärtused "vähem", "võrdsed" või "suuremad").

TValueRelationship tähistab kahe väärtuse suhet. Kõigil kolmel TValueRelationship väärtusel on sümboolne konstant "meeldinud":
-1 [LessThanValue] Esimene väärtus on väiksem kui teine ​​väärtus.
0 [EqualsValue] Kaks väärtust on võrdsed.
1 [GreaterThanValue] Esimene väärtus on suurem kui teine ​​väärtus.
VõrdleKuupäeva tulemused:

LessThanValue, kui ADate on varasem kui BDate.
EqualsValue, kui nii ADate kui ka BDate kuupäeva- ja kellaajaosad on samad
GreaterThanValue, kui ADate on hilisem kui BDate.

Näide:

var ThisMoment, FutureMoment: TDateTime; SeeMoment: = Nüüd; FutureMoment: = IncDay (ThisMoment, 6); // lisab 6 päeva. // CompareDateTime (ThisMoment, FutureMoment) tagastab LessThanValue (-1) // VõrdleDateTime (FutureMoment, SeeMoment) tagastab GreaterThanValue (1)
instagram viewer

Võrdlusaja funktsioon

Võrdleb kahte TDateTime väärtust (tagastab väärtused "vähem", "võrdsed" või "suuremad"). Eirab kuupäeva osa, kui mõlemad väärtused esinevad samal ajal.

Deklaratsioon:
tüüp TValueRelationship = -1..1
funktsiooni Võrdluskuupäev (const ADate, BDate: TDateTime): TValueRelationship

Kirjeldus:
Võrdleb kahte TDateTime väärtust (tagastab väärtused "vähem", "võrdsed" või "suuremad"). Eirab osa aega, kui mõlemad väärtused esinevad samal ajal.

TValueRelationship tähistab kahe väärtuse suhet. Kõigil kolmel TValueRelationship väärtusel on sümboolne konstant "meeldinud":
-1 [LessThanValue] Esimene väärtus on väiksem kui teine ​​väärtus.
0 [EqualsValue] Kaks väärtust on võrdsed.
1 [GreaterThanValue] Esimene väärtus on suurem kui teine ​​väärtus.
VõrdleKuupäeva tulemused:

LessThanValue, kui ADate toimub varem BDate määratud päeval.
EqualsValue, kui nii ADate kui ka BDate ajaosad on samad, ignoreerides kuupäeva osa.
GreaterThanValue, kui ADate ilmub hiljem BDate määratud päeval.

Näide:

var ThisMoment, AnotherMoment: TDateTime; SeeMoment: = Nüüd; AnotherMoment: = IncHour (ThisMoment, 6); // lisab 6 tundi. // Võrdluskuupäev (SeeMoment, TeineMoment) tagastab LessThanValue (-1) // Võrdluskuupäev (AnotherMoment, ThisMoment) tagastab GreaterThanValue (1

Kuupäeva funktsioon

Tagastab praeguse süsteemi kuupäeva.

Deklaratsioon:
tüüp TDateTime = tüüp Topelt;

funktsiooni kuupäev: TDateTime;

Kirjeldus:
Tagastab praeguse süsteemi kuupäeva.

TDateTime väärtuse lahutamatu osa on päevade arv, mis on möödunud 12/30/1899. TDateTime'i väärtuse murdosa on 24-tunnise päeva murdosa.

Kahe kuupäeva vahelise murdosa päevade arvu leidmiseks lahutage need kaks väärtust. Kuupäeva ja kellaaja väärtuse suurendamiseks teatud murdosa päevade arvu järgi lisage kuupäeva ja kellaaja väärtusele murdarv lihtsalt.

Näide: ShowMessage ('Täna on' + DateToStr (kuupäev));

Funktsioon DateTimeToStr

Teisendab TDateTime väärtuse stringiks (kuupäev ja kellaaeg).

Deklaratsioon:
tüüp
TDateTime = tüüp Topelt;

funktsiooni DayOfWeek (kuupäev: TDateTime): täisarv;

Kirjeldus:
Tagastab antud kuupäeva nädalapäeva.

DayOfWeek tagastab täisarvu vahemikus 1 kuni 7, kus pühapäev on nädala esimene päev ja laupäev on seitsmes.
DayOfTheWeek ei vasta ISO 8601 standardile.

Näide:

const Days: massiivi [1..7] stringist ('Esmaspäev Teisipäev Kolmapäev Neljapäev Reede Laupäev') ShowMessage ('Täna on' + päeva [DayOfWeek (kuupäev)])); //Täna on esmaspäev

Funktsioon DaysBetween

Annab terve päevade arvu kahe kindlaksmääratud kuupäeva vahel.

Deklaratsioon:
funktsiooni
DaysBetween (jätkub nüüd, AThen: TDateTime): täisarv;

Kirjeldus:
Annab terve päevade arvu kahe kindlaksmääratud kuupäeva vahel.

Funktsioon loeb ainult terveid päevi. See tähendab, et see tagastab 0 tulemuseks erinevusest 01.01.2003 23:59:59 ja 05.01.01 23:59:58 - kus tegelik erinevus on üks * terve * päev miinus 1 sekund .

Näide:

var dtNow, dtBirth: TDateTime; DaysFromBirth: täisarv; dtNow: = Nüüd; dtBirth: = EncodeDate (1973, 1, 29); DaysFromBirth: = DaysBetween (dtNow, dtBirth); ShowMessage ('Zarko Gajic on olemas' '+ + IntToStr (DaysFromBirth) + 'terved päevad!');

Funktsioon DateOf

Tagastab väärtuse TDateTime ainult kuupäeva osa, määrates ajaosa väärtuseks 0.

Deklaratsioon:
funktsiooni
DateOf (kuupäev: TDateTime): TDateTime

Kirjeldus:
Tagastab väärtuse TDateTime ainult kuupäeva osa, määrates ajaosa väärtuseks 0.

DateOf seab ajavahemikuks 0, mis tähendab keskööd.

Näide:

var ThisMoment, ThisDay: TDateTime; SeeMoment: = Nüüd; // -> 06/27/2003 10:29:16:138. ThisDay: = DateOf (ThisMoment); // See päev: = 06/27/2003 00: 00: 00: 000

Funktsioon DecodeDate

Eraldab aasta, kuu ja päeva väärtused väärtusest TDateTime.

Deklaratsioon:
protseduur
DecodeDate (kuupäev: TDateTime; var Aasta, kuu, päev: sõna) ;;

Kirjeldus:
Eraldab aasta, kuu ja päeva väärtused väärtusest TDateTime.

Kui antud TDateTime väärtus on nullist väiksem või sellega võrdne, seatakse aasta, kuu ja päeva tagastamisparameetrid nulli.

Näide:

var Y, M, D: sõna; DecodeDate (kuupäev, Y, M, D); kui Y = 2000, siis. ShowMessage ('Sa oled "vales" sajandis!);

EncodeDate funktsioon
Loob väärtuse TDateTime aasta, kuu ja päeva väärtuste põhjal.

Deklaratsioon:
funktsiooni
EncodeDate (aasta, kuu, päev: sõna): TDateTime

Kirjeldus:
Loob väärtuse TDateTime aasta, kuu ja päeva väärtuste põhjal.

Aasta peab olema vahemikus 1 kuni 9999. Kuu kehtivad väärtused on 1 kuni 12. Päeva kehtivad väärtused on sõltuvalt kuu väärtusest 1 kuni 28, 29, 30 või 31.
Kui funktsioon ebaõnnestub, tõstab EncodeDate EConvertError erandi.

Näide:

var Y, M, D: sõna; dt: TDateTime; y: = 2001; M: = 2; D: = 18; dt: = EncodeDate (Y, M, D); ShowMessage ('Borna saab olema. üheaastane '+ DateToStr (dt))

FormatDateTime funktsioon
Vormindab stringi TDateTime väärtuse.

Deklaratsioon:
funktsiooni
FormatDateTime (const Fmt: string; Väärtus: TDateTime): nöör;

Kirjeldus:
Vormindab stringi TDateTime väärtuse.

FormatDateTime kasutab parameetri Fmt täpsustatud vormingut. Toetatavate vorminguspetsifikaatorite kohta lugege Delphi abifaile.

Näide:

var s: string; d: TDateTime;... d: = nüüd; // täna + praegune aeg. s: = FormatDateTime ('dddd', d); // s: = kolmapäev. s: = FormatDateTime ('"Täna on" dddd "minut" nn', d) // s: = Täna on kolmapäeva minut 24

IncDay funktsioon

Lisab või lahutab valitud päevade arvu alates kuupäeva väärtusest.

Deklaratsioon:
funktsiooni
IncDay (ADate: TDateTime; Päevad: täisarv = 1): TDateTime;

Kirjeldus:
Lisab või lahutab valitud päevade arvu alates kuupäeva väärtusest.

Kui päevade parameeter on negatiivne, on tagastatud kuupäev

Näide:

var kuupäev: TDateTime; EncodeDate (kuupäev, 2003, 1, 29) // 29. jaanuar 2003. IncDay (kuupäev, -1) // 28. jaanuar 2003

Nüüd funktsioon

Tagastab praeguse süsteemi kuupäeva ja kellaaja.

Deklaratsioon:
tüüp
TDateTime = tüüp Topelt;

funktsiooni Nüüd: TDateTime;

Kirjeldus:
Tagastab praeguse süsteemi kuupäeva ja kellaaja.

TDateTime väärtuse lahutamatu osa on päevade arv, mis on möödunud 12/30/1899. TDateTime'i väärtuse murdosa on 24-tunnise päeva murdosa.

Kahe kuupäeva vahelise murdosa päevade arvu leidmiseks lahutage need kaks väärtust. Kuupäeva ja kellaaja väärtuse suurendamiseks teatud murdosa päevade arvu järgi lisage kuupäeva ja kellaaja väärtusele murdarv lihtsalt.

Näide: ShowMessage ('Nüüd on' + DateTimeToStr (Nüüd));

Aastatevaheline funktsioon

Annab tervete aastate arvu kahe kindlaksmääratud kuupäeva vahel.

Deklaratsioon:
funktsiooni
Aastate vahel (const SomeDate, AnotherDate: TDateTime): täisarv;

Kirjeldus:
Annab tervete aastate arvu kahe kindlaksmääratud kuupäeva vahel.

YearsBetween tagastab ligikaudse hinnangu, mis põhineb eeldusel, et aastas on 365,25 päeva.

Näide:

var dtSome, dtAnother: TDateTime; DaysFromBirth: täisarv; dtSome: = EncodeDate (2003, 1, 1); dtAnother: = EncodeDate (2003, 12, 31); YearsBetween (dtSome, dtAnother) == 1 // mitte-hüppeline aasta. dtSome: = EncodeDate (2000, 1, 1); dtAnother: = EncodeDate (2000, 12, 31); YearsBetween (dtSome, dtAnother) == 0 // liigaasta