Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi 2 TDate -> 1 Tdate (https://www.delphipraxis.net/85648-2-tdate-1-tdate.html)

Antigo 2. Feb 2007 17:53


2 TDate -> 1 Tdate
 
Servus,
Ich habe 2 TDateTimePicker auf meiner Form. In dem einen kann der User ein Datum, in dem anderen eine Uhrzeit einstellen. Jetzt möchte ich aus diesen beiden Angaben ein Datum errechnen, das das Datum des ersten Pickers und die Uhrzeit des zweiten hat. Nur wie komme ich dadran?
Ich weiss, oder meine zumindest mal gelesen zu haben, dass der Vorkomma Teil eines TDates das Datum repräsentiert, und der Nachkomma Teil die Uhrzeit.
Ich komme aber trotzdem nicht drauf wie ich das bewerkstelligen sollte...

Mir kam jetzt doch eine Idee, aber gibts da nicht vielleicht eine sauberere Lösung? Ich find das ziemlich dämlich:
Delphi-Quellcode:
var temp:TDate;
begin
  temp:=trunc(DateTimePicker1.DateTime)+(DateTimePicker2.date-trunc(DateTimePicker2.DateTime));

  edit1.text:=DateTimeToStr(temp)
end;
Funktioniert zwar, aber wie gesagt, etwas rumgetrickst...

SirThornberry 2. Feb 2007 17:58

Re: 2 TDate -> 1 Tdate
 
das einfachste ist einfach Datum + Zeit (weil Datum ja der Vorkommateil ist und Zeit der Nachkommateil).
Um zu verhindern das da jeweils noch ein falsches Datum oder eine falsche Zeit addiert werden kann man die Funktionen Trunc und Frac nutzen
Delphi-Quellcode:
DatumZeit := Trunc(Datum) + Frac(Zeit);

Antigo 2. Feb 2007 18:11

Re: 2 TDate -> 1 Tdate
 
ok ost etwas schlanker, auch wenns das selbe tut, danke :)

Lannes 2. Feb 2007 18:55

Re: 2 TDate -> 1 Tdate
 
Hallo,

im OI DateTimePicker1.Time auf '00:00:00' und DateTimePicker2.Date auf '30.12.1899' setzen,
dann ist die direkte Berechnung möglich:
Delphi-Quellcode:
showmessage(DateTimeToStr(DateTimePicker1.Date + DateTimePicker2.Time));


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz