Delphi-programmering: Dato / tid-rutiner

Sammenligner to TDateTime-verdier (returnerer "mindre", "lik" eller "større"). Ignorer tidsdelen hvis begge verdiene "faller" på samme dag.

CompareDateTime-funksjon

Sammenligner to TDateTime-verdier (returnerer "mindre", "lik" eller "større").

Erklæring:
type TValueRelationship = -1..1
funksjon CompareDateTime (konst ADate, BDate: TDateTime): TValueRelationship

Beskrivelse:
Sammenligner to TDateTime-verdier (returnerer "mindre", "lik" eller "større").

TValueRelationship representerer forholdet mellom to verdier. Hver av tre TValueRelationship-verdier har en "likte" symbolsk konstant:
-1 [LessThanValue] Den første verdien er mindre enn den andre verdien.
0 [EqualsValue] De to verdiene er like.
1 [GreaterThanValue] Den første verdien er større enn den andre verdien.
Sammenlign dato resultater i:

LessThanValue hvis ADate er tidligere enn BDate.
Like verdi Verdi hvis dato og klokkeslett deler av både ADate og BDate er de samme
GreaterThanValue hvis ADate er senere enn BDate.

Eksempel:

var ThisMoment, FutureMoment: TDateTime; ThisMoment: = Nå; FutureMoment: = IncDay (ThisMoment, 6); // legger til 6 dager. // CompareDateTime (ThisMoment, FutureMoment) returnerer LessThanValue (-1) // CompareDateTime (FutureMoment, ThisMoment) returnerer GreaterThanValue (1)
instagram viewer

CompareTime-funksjon

Sammenligner to TDateTime-verdier (returnerer "mindre", "lik" eller "større"). Ignorerer datodelen hvis begge verdiene forekommer samtidig.

Erklæring:
type TValueRelationship = -1..1
funksjon CompareDate (konst ADate, BDate: TDateTime): TValueRelationship

Beskrivelse:
Sammenligner to TDateTime-verdier (returnerer "mindre", "lik" eller "større"). Ignorer tidsdelen hvis begge verdiene forekommer på samme tid.

TValueRelationship representerer forholdet mellom to verdier. Hver av tre TValueRelationship-verdier har en "likte" symbolsk konstant:
-1 [LessThanValue] Den første verdien er mindre enn den andre verdien.
0 [EqualsValue] De to verdiene er like.
1 [GreaterThanValue] Den første verdien er større enn den andre verdien.
Sammenlign dato resultater i:

LessThanValue hvis ADate oppstår tidligere på dagen spesifisert av BDate.
Likeverdier hvis tidsdeler av både ADate og BDate er de samme, ignorerer dato-delen.
GreaterThanValue hvis ADate oppstår senere på dagen spesifisert av BDate.

Eksempel:

var ThisMoment, AnotherMoment: TDateTime; ThisMoment: = Nå; AnotherMoment: = IncHour (ThisMoment, 6); // legger 6 timer. // CompareDate (ThisMoment, AnotherMoment) returnerer LessThanValue (-1) // CompareDate (AnotherMoment, ThisMoment) returnerer GreaterThanValue (1

Datofunksjon

Returnerer gjeldende systemdato.

Erklæring:
type TDateTime = type Dobbelt;

funksjon dato: TDateTime;

Beskrivelse:
Returnerer gjeldende systemdato.

Den integrerte delen av en TDateTime-verdi er antall dager som har gått siden 12/30/1899. Brøkdelen av en TDateTime-verdi er brøkdel av en 24 timers dag som har gått.

For å finne det brøkdelte antall dager mellom to datoer, trekker du bare de to verdiene. Hvis du vil øke en dato- og tidsverdi med et visst antall dager, kan du bare legge til brøknummeret til dato- og tidsverdien.

Eksempel: ShowMessage ('Today is' + DateToStr (Date));

DateTimeToStr-funksjonen

Konverterer en TDateTime-verdi til en streng (dato og tid).

Erklæring:
type
TDateTime = type Dobbelt;

funksjon DayOfWeek (Dato: TDateTime): heltall;

Beskrivelse:
Returnerer ukens dag for en gitt dato.

DayOfWeek returnerer et heltall mellom 1 og 7, der søndag er den første dagen i uken og lørdag er den syvende.
DayOfTheWeek er ikke i samsvar med ISO 8601-standarden.

Eksempel:

const Days: array [1..7] of string = ('Søndag Mandag Tirsdag Onsdag Torsdag Fredag ​​Lørdag') ShowMessage ('Today is' + Days [DayOfWeek (Date)]); // I dag er det mandag

DaysBetween funksjon

Gir antall hele dager mellom to angitte datoer.

Erklæring:
funksjon
DaysBetween (const NOow, AThen: TDateTime): Heltall;

Beskrivelse:
Gir antall hele dager mellom to angitte datoer.

Funksjon teller bare hele dager. Hva dette betyr er at det vil returnere 0 som resultat for forskjell mellom 05/01/2003 23:59:59 og 05/01/2003 23:59:58 - der den faktiske forskjellen er en * hel * dag minus 1 sekund .

Eksempel:

var dtNow, dtBirth: TDateTime; DaysFromBirth: heltall; dtNow: = Nå; dtBirth: = EncodeDate (1973, 1, 29); DaysFromBirth: = DaysBetween (dtNow, dtBirth); ShowMessage ('Zarko Gajic' eksisterer '' + IntToStr (DaysFromBirth) + 'hele dager!');

DateOf-funksjon

Returnerer bare Datodelen av TDateTime-verdien ved å stille tidsdelen til 0.

Erklæring:
funksjon
DateOf (Date: TDateTime): TDateTime

Beskrivelse:
Returnerer bare Datodelen av TDateTime-verdien ved å stille tidsdelen til 0.

DateOf setter tidsdelen til 0, som betyr midnatt.

Eksempel:

var ThisMoment, ThisDay: TDateTime; ThisMoment: = Nå; // -> 06/27/2003 10:29:16:138. ThisDay: = DateOf (ThisMoment); // Denne dagen: = 06/27/2003 00: 00: 00: 000

DecodeDate-funksjon

Skiller verdier for år, måned og dag fra en TDateTime-verdi.

Erklæring:
fremgangsmåte
DecodeDate (Dato: TDateTime; Var År, måned, dag: Word) ;;

Beskrivelse:
Skiller verdier for år, måned og dag fra en TDateTime-verdi.

Hvis den gitte TDateTime-verdien er mindre enn eller lik null, settes år, måned og dag returparametere til null.

Eksempel:

var Y, M, D: Word; DekodeDato (Dato, Y, M, D); hvis Y = 2000 da. ShowMessage ('Du er i et "feil" århundre!);

EncodeDate-funksjon
Oppretter en TDateTime-verdi fra år, måned og dag.

Erklæring:
funksjon
EncodeDate (År, måned, dag: Word): TDateTime

Beskrivelse:
Oppretter en TDateTime-verdi fra år, måned og dag.

Året må være mellom 1 og 9999. Gyldige månedsverdier er 1 til 12. Gyldige dagverdier er 1 til 28, 29, 30 eller 31, avhengig av månedsverdien.
Hvis funksjonen mislykkes, hever EncodeDate et EConvertError-unntak.

Eksempel:

var Y, M, D: Word; dt: TDateTime; y: = 2001; M: = 2; D: = 18; dt: = EncodeDate (Y, M, D); ShowMessage ('Borna blir. ett år gammel på '+ DateToStr (dt))

FormatDateTime-funksjon
Formaterer en TDateTime-verdi til en streng.

Erklæring:
funksjon
FormatDateTime (konst Fmt: streng; Verdi: TDateTime): string;

Beskrivelse:
Formaterer en TDateTime-verdi til en streng.

FormatDateTime bruker formatet som er spesifisert av Fmt-parameteren. For Delformatypes spesifikasjoner, se Delphi Help-filer.

Eksempel:

var s: streng; d: TDateTime;... d: = Nå; // i dag + nåværende tid. s: = FormatDateTime ( 'dddd', d); // s: = onsdag. s: = FormatDateTime ('"I dag er" dddd "minutt" nn', d) // s: = I dag er onsdag 24. minutt

IncDay-funksjon

Legger til eller trekker fra et gitt antall dager fra en datoverdi.

Erklæring:
funksjon
IncDay (ADate: TDateTime; Dager: Heltall = 1): TDateTime;

Beskrivelse:
Legger til eller trekker fra et gitt antall dager fra en datoverdi.

Hvis parameteren Days er negativ, er datoen som returneres

Eksempel:

var Dato: TDateTime; EncodeDate (Dato, 2003, 1, 29) // 29. januar 2003. IncDay (dato, -1) // 28. januar 2003

Nå funksjon

Returnerer gjeldende systemdato og klokkeslett.

Erklæring:
type
TDateTime = type Dobbelt;

funksjon Nå: TDateTime;

Beskrivelse:
Returnerer gjeldende systemdato og klokkeslett.

Den integrerte delen av en TDateTime-verdi er antall dager som har gått siden 12/30/1899. Brøkdelen av en TDateTime-verdi er brøkdel av en 24 timers dag som har gått.

For å finne det brøkdelte antall dager mellom to datoer, trekker du bare de to verdiene. Hvis du vil øke en dato- og tidsverdi med et visst antall dager, kan du bare legge til brøknummeret til dato- og tidsverdien.

Eksempel: ShowMessage ('Nå er det' + DateTimeToStr (Nå));

YearsBetween funksjon

Gir antall hele år mellom to spesifiserte datoer.

Erklæring:
funksjon
YearsBetween (konst SomeDate, AnotherDate: TDateTime): Heltall;

Beskrivelse:
Gir antall hele år mellom to spesifiserte datoer.

YearsBetween returnerer en tilnærming basert på en antagelse om 365,25 dager per år.

Eksempel:

var dtSome, dtAnother: TDateTime; DaysFromBirth: heltall; dtSome: = EncodeDate (2003, 1, 1); dtAnother: = EncodeDate (2003, 12, 31); YearsBetween (dtSome, dtAnother) == 1 // ikke-skuddår. dtSome: = EncodeDate (2000, 1, 1); dtAnother: = EncodeDate (2000, 12, 31); YearsBetween (dtSome, dtAnother) == 0 // skuddår