Computerwissenschaften

Delphi-Programmierung: Datums- / Zeitroutinen

Vergleicht zwei TDateTime-Werte (gibt „kleiner“, „gleich“ oder „größer“ zurück). Ignoriert den Zeitteil, wenn beide Werte am selben Tag „fallen“.

 

CompareDateTime-Funktion

Vergleicht zwei TDateTime-Werte (gibt „kleiner“, „gleich“ oder „größer“ zurück).

Deklaration:
Typ TValueRelationship=-1..1
Funktion  CompareDateTime ( const  ADate, BDate: TDateTime): TValueRelationship

Beschreibung:
Vergleicht zwei TDateTime-Werte (gibt „kleiner“, „gleich“ oder „größer“ zurück).

TValueRelationship repräsentiert die Beziehung zwischen zwei Werten. Jeder der drei TValueRelationship-Werte hat eine symbolische Konstante
„Gefällt mir „: -1 [LessThanValue] Der erste Wert ist kleiner als der zweite Wert.
0 [EqualsValue] Die beiden Werte sind gleich.
1 [GreaterThanValue] Der erste Wert ist größer als der zweite Wert.

CompareDate führt zu:

LessThanValue, wenn ADate früher als BDate ist.
EqualsValue, wenn Datums- und Uhrzeitteile von ADate und BDate gleich sind
GreaterThanValue, wenn ADate später als BDate ist.

Beispiel:

var ThisMoment, FutureMoment: TDateTime;
ThisMoment:=Now;
FutureMoment:=IncDay (ThisMoment, 6); // fügt 6 Tage hinzu
// CompareDateTime (ThisMoment, FutureMoment) gibt LessThanValue (-1) zurück
// CompareDateTime (FutureMoment, ThisMoment) gibt GreaterThanValue (1) zurück

 

CompareTime-Funktion

Vergleicht zwei TDateTime-Werte (gibt „kleiner“, „gleich“ oder „größer“ zurück). Ignoriert den Datumsteil, wenn beide Werte gleichzeitig auftreten.

Deklaration:
Typ TValueRelationship=-1..1
Funktion  CompareDate ( const  ADate, BDate: TDateTime): TValueRelationship

Beschreibung:
Vergleicht zwei TDateTime-Werte (gibt „kleiner“, „gleich“ oder „größer“ zurück). Ignoriert den Zeitteil, wenn beide Werte gleichzeitig auftreten.

TValueRelationship repräsentiert die Beziehung zwischen zwei Werten. Jeder der drei TValueRelationship-Werte hat eine symbolische Konstante
„Gefällt mir „: -1 [LessThanValue] Der erste Wert ist kleiner als der zweite Wert.
0 [EqualsValue] Die beiden Werte sind gleich.
1 [GreaterThanValue] Der erste Wert ist größer als der zweite Wert.

CompareDate führt zu:

LessThanValue, wenn ADate früher an dem von BDate angegebenen Tag auftritt.
EqualsValue, wenn die Zeitteile von ADate und BDate identisch sind, wobei der Datumsteil ignoriert wird.
GreaterThanValue, wenn ADate später an dem von BDate angegebenen Tag auftritt.

Beispiel:

var ThisMoment, AnotherMoment: TDateTime;
ThisMoment:=Now;
AnotherMoment:=IncHour (ThisMoment, 6); // fügt 6 Stunden hinzu
// CompareDate (ThisMoment, AnotherMoment) gibt LessThanValue (-1) zurück.
// CompareDate (AnotherMoment, ThisMoment) gibt GreaterThanValue (1) zurück

 

Datumsfunktion

Gibt das aktuelle Systemdatum zurück.

Deklaration:
Typ  TDateTime =  Typ  Double;

Funktionsdatum  : TDateTime;

Beschreibung:
Gibt das aktuelle Systemdatum zurück.

Der integrale Bestandteil eines TDateTime-Werts ist die Anzahl der Tage, die seit dem 30.12.1899 vergangen sind. Der Bruchteil eines TDateTime-Werts ist der Bruchteil eines verstrichenen 24-Stunden-Tages.

Um die gebrochene Anzahl von Tagen zwischen zwei Daten zu ermitteln, subtrahieren Sie einfach die beiden Werte. Um einen Datums- und Zeitwert um einen bestimmten Bruchteil von Tagen zu erhöhen, fügen Sie einfach den Bruchteil zum Datums- und Zeitwert hinzu.

Beispiel:    ShowMessage (‚Heute ist‘ + DateToStr (Datum));

 

DateTimeToStr-Funktion

Konvertiert einen TDateTime-Wert in eine Zeichenfolge (Datum und Uhrzeit).

Deklaration:
Typ
 TDateTime =  Typ  Double;

Funktion  DayOfWeek (Datum: TDateTime): Ganzzahl;

Beschreibung:
Gibt den Wochentag für ein bestimmtes Datum zurück.

DayOfWeek gibt eine Ganzzahl zwischen 1 und 7 zurück, wobei Sonntag der erste Tag der Woche und Samstag der siebte ist.
DayOfTheWeek entspricht nicht der Norm ISO 8601.

Beispiel:

const Days: Array [1..7] von string =
('Sonntag, Montag, Dienstag',
'Mittwoch Donnerstag',
'Freitag Samstag')
ShowMessage ('Heute ist' + Tage [DayOfWeek (Datum)]);
//Heute ist Montag

 

DaysBetween-Funktion

Gibt die Anzahl der ganzen Tage zwischen zwei angegebenen Daten an.

Deklaration:
Funktion
 DaysBetween (const ANow, AThen: TDateTime): Integer;

Beschreibung:
Gibt die Anzahl der ganzen Tage zwischen zwei angegebenen Daten an.

Funktion zählt nur ganze Tage. Dies bedeutet, dass 0 als Ergebnis für die Differenz zwischen dem 01.05.2003 23:59:59 und dem 01.05.2003 23:59:58 zurückgegeben wird – wobei die tatsächliche Differenz einen * ganzen * Tag minus 1 Sekunde beträgt .

Beispiel:

var dtNow, dtBirth: TDateTime;
DaysFromBirth: Ganzzahl;
dtNow:=Now;
dtBirth:=EncodeDate (1973, 1, 29);
DaysFromBirth:=DaysBetween (dtNow, dtBirth);
ShowMessage ('Zarko Gajic "existiert"' +
IntToStr (DaysFromBirth) + 'ganze Tage!');

 

DateOf-Funktion

Gibt nur den Datumsteil des TDateTime-Werts zurück, indem der Zeitteil auf 0 gesetzt wird.

Deklaration:
Funktion
 DateOf (Datum: TDateTime): TDateTime

Beschreibung:
Gibt nur den Datumsteil des TDateTime-Werts zurück, indem der Zeitteil auf 0 gesetzt wird.

DateOf setzt den Zeitanteil auf 0, was Mitternacht bedeutet.

Beispiel:

var ThisMoment, ThisDay: TDateTime;
ThisMoment:=Now; // -> 27.06.2003 10: 29: 16: 138
ThisDay:=DateOf (ThisMoment);
// Heute:=27.06.2003 00: 00: 00: 000

 

DecodeDate-Funktion

Trennt die Werte für Jahr, Monat und Tag von einem TDateTime-Wert.

Deklaration:
Prozedur
 DecodeDate (Datum: TDateTime;  var  Jahr, Monat, Tag: Wort) ;;

Beschreibung:
Trennt die Werte für Jahr, Monat und Tag von einem TDateTime-Wert.

Wenn der angegebene TDateTime-Wert kleiner oder gleich Null ist, werden die Rückgabeparameter für Jahr, Monat und Tag auf Null gesetzt.

Beispiel:

var Y, M, D: Wort;
DecodeDate (Datum, Y, M, D);
wenn Y=2000 dann
ShowMessage ('Du bist in einem "falschen" Jahrhundert!);

EncodeDate-Funktion
Erstellt einen TDateTime-Wert aus den Werten für Jahr, Monat und Tag.

Deklaration:
Funktion
 EncodeDate (Jahr, Monat, Tag: Wort): TDateTime

Beschreibung:
Erstellt einen TDateTime-Wert aus den Werten für Jahr, Monat und Tag.

Das Jahr muss zwischen 1 und 9999 liegen. Gültige Monatswerte sind 1 bis 12. Gültige Tageswerte sind 1 bis 28, 29, 30 oder 31, abhängig vom Monatswert.
Wenn die Funktion fehlschlägt, löst EncodeDate eine EConvertError-Ausnahme aus.

Beispiel:

var Y, M, D: Wort;
dt: TDateTime;
y:=2001;
M:=2;
D:=18;
dt:=EncodeDate (Y, M, D);
ShowMessage ('Borna wird sein
ein Jahr alt auf '+ DateToStr (dt))

FormatDateTime-Funktion
Formatiert einen TDateTime-Wert in eine Zeichenfolge.

Deklaration:
Funktion
 FormatDateTime ( const  Fmt: string; Wert: TDateTime):  string ;

Beschreibung:
Formatiert einen TDateTime-Wert in eine Zeichenfolge.

FormatDateTime verwendet das durch den Parameter Fmt angegebene Format. Die unterstützten Formatspezifizierer finden Sie in den Delphi-Hilfedateien.

Beispiel:

var s: string;
d: TDateTime;
...
d:=Jetzt; // heute + aktuelle Zeit
s:=FormatDateTime ('dddd', d);
// s:=Mittwoch
s:=FormatDateTime ('"Heute ist" dddd "Minute" nn', d)
// s:=Heute ist Mittwoch, 24. Minute

 

IncDay-Funktion

Addiert oder subtrahiert eine bestimmte Anzahl von Tagen von einem Datumswert.

Deklaration:
Funktion
 IncDay (ADate: TDateTime; Days: Integer=1): TDateTime;

Beschreibung:
Addiert oder subtrahiert eine bestimmte Anzahl von Tagen von einem Datumswert.

Wenn der Parameter Days negativ ist, lautet das zurückgegebene Datum

Beispiel:

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

 

Jetzt funktionieren

Gibt das aktuelle Systemdatum und die aktuelle Systemzeit zurück.

Deklaration:
Typ
 TDateTime =  Typ  Double;

Funktion  jetzt: TDateTime;

Beschreibung:
Gibt das aktuelle Systemdatum und die aktuelle Systemzeit zurück.

Der integrale Bestandteil eines TDateTime-Werts ist die Anzahl der Tage, die seit dem 30.12.1899 vergangen sind. Der Bruchteil eines TDateTime-Werts ist der Bruchteil eines verstrichenen 24-Stunden-Tages.

Um die gebrochene Anzahl von Tagen zwischen zwei Daten zu ermitteln, subtrahieren Sie einfach die beiden Werte. Um einen Datums- und Zeitwert um einen bestimmten Bruchteil von Tagen zu erhöhen, fügen Sie einfach den Bruchteil zum Datums- und Zeitwert hinzu.

Beispiel:   ShowMessage (‚Now is‘ + DateTimeToStr (Now));

 

Jahre Zwischen Funktion

Gibt die Anzahl der ganzen Jahre zwischen zwei angegebenen Daten an.

Deklaration:
Funktion
 YearsBetween ( const  SomeDate, AnotherDate: TDateTime): Integer;

Beschreibung:
Gibt die Anzahl der ganzen Jahre zwischen zwei angegebenen Daten an.

YearsBetween gibt eine Annäherung zurück, die auf einer Annahme von 365,25 Tagen pro Jahr basiert.

Beispiel:

var dtSome, dtAnother: TDateTime;
DaysFromBirth: Ganzzahl;
dtSome:=EncodeDate (2003, 1, 1);
dtAnother:=EncodeDate (2003, 12, 31);
YearsBetween (dtSome, dtAnother) == 1 // Nicht-Schaltjahr
dtSome:=EncodeDate (2000, 1, 1);
dtAnother:=EncodeDate (2000, 12, 31);
YearsBetween (dtSome, dtAnother) == 0 // Schaltjahr

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.