Hier würde ich erst einmal die beiden Edit-Felder durch zwei
Vcl.ComCtrls.TDateTimePicker ersetzen. Danach würde ich das Property
Kind dieser beiden Komponenten auf dtkTime ändern, so daß nur Uhrzeiten eingegeben werden können. Benötigst du beides, also Uhrzeit
und Datum, nimmst du vier DateTimePicker: jeweils zwei für das Datum und jeweils zwei für die Uhrzeit. Im Property DateTime steht immer das aktuelle Datum nebst Uhrzeit.
Um das komplette Datum zweier DateTimePicker zu ermitteln, benötigst du die
Unit System.DateUtils. Dort findest du die beiden Funktionen
DateOf und
TimeOf: Erstere entfernt den Zeitanteil aus dem TDateTime-Wert, letztere den Datumsanteil. Beide Resultate zusammen ergeben dann das gewünschte Datum:
Delphi-Quellcode:
Function TForm1.GetDateTimeFromPickers(Const Picker_Datum, Picker_Zeit : TDateTimePicker) : TDateTime;
begin
Result := System.DateUtils.DateOf(Picker_Datum.Date) +
System.DateUtils.TimeOf(Picker_Zeit.Time);
end;
Damit kannst du nun das Datum der beiden DateTimePicker-Gruppen, die quasi das Start- und das Enddatum darstellen, ermitteln. Nun benötigst du noch den Wert, der die vergangene Zeit zwischen diesen beiden Datumswerten darstellt. In der bereits genannten
Unit DateUtils gibt es diverse Between-Funktionen, die genau das tun: Sie liefern die zwischen zwei TDateTime-Werten liegende Zeit wahlweise in
Millisekunden,
Sekunden,
Minuten,
Stunden,
Tagen,
Wochen,
Monaten oder
Jahren zurück.
Diesen Wert schreibst du dann in das TEdit, in dem du das Ergebnis haben willst, oder auch in ein TLabel oder was auch immer.
Nachtrag:- Dein Posting steht wohl im falschen Bereich, denn mit Datenbanken hat das erstmal nichts zu tun.
- Könntest du bei Gelegenheit deine Delphi-Version, mit der du arbeitest, in deinem Profil eintragen? Das wäre unter Umständen hilfreich beim Versuch, dir weiterzuhelfen.
- Differenzen zwischen zwei Werten zu ermitteln nennt man Subtrahieren, Addieren dagegen bezeichnet den Vorgang, um die Summe zu berechnen.