Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Date und Time von DateTime zusammenfügen (https://www.delphipraxis.net/205076-date-und-time-von-datetime-zusammenfuegen.html)

kagi3624 29. Jul 2020 13:15

Delphi-Version: 6

Date und Time von DateTime zusammenfügen
 
Hallo, ich habe zwei Variablen TDateTime. In der einen Steht die Zeit und in der anderen das Datum. Kann man irgendwie ganz einfach das zusammenfügen ohne über einen String zu parsen?

Danke! Ich habe delphi 6!

KodeZwerg 29. Jul 2020 13:26

AW: Date und Time von DateTime zusammenfügen
 
Neuere Delphi's haben ReplaceTime(), obs Delphi 6 hat weiß ich nicht.
Alternativ halt über DecodeDate()/DecodeTime() die Einzelwerte auslesen und mit EncodeDateTime() ein frisches erzeugen lassen.

haentschman 29. Jul 2020 13:27

AW: Date und Time von DateTime zusammenfügen
 
Moin...8-)
Zitat:

Kann man irgendwie ganz einfach das zusammenfügen ohne über einen String zu parsen?
..ganz schlecht. :wink:
Zitat:

Der ganzzahlige Anteil eines TDateTime-Werts ist die Anzahl der Tage, die seit dem 30.12.1899 vergangen sind. Der Dezimalanteil gibt die Uhrzeit an.
1. Mathematik: summieren
2. DecodeDateTime / EncodeDateTime
:wink:

mikhal 29. Jul 2020 13:30

AW: Date und Time von DateTime zusammenfügen
 
In TDateTime wird vor dem Komma das Datum und nach dem Komma die Zeit gespeichert.
Mit den Funktionen Trunc und Frac solltest du hinkommen:

Ungetestet ohne Delphi...

Delphi-Quellcode:
var myDateTime: TDateTime;
myDateTime := Trunc(Datum); // hier die Variable mit dem Datum einsetzen
myDateTime = myDateTime + Frac(Zeit); // hier die Variable mit der Zeit einsetzen
In myDateTime sollte jetzt dein zusammengesetztes Datum stehen.

Grüße
Mikhal

Redeemer 29. Jul 2020 14:09

AW: Date und Time von DateTime zusammenfügen
 
Klappt nicht vorm 30. Dezember 1899 (es gibt aber auch Delphi-Funktionen, die das nicht ganz richtig behandeln), ansonsten ja.

Rolf Frei 29. Jul 2020 16:44

AW: Date und Time von DateTime zusammenfügen
 
Zitat:

Zitat von kagi3624 (Beitrag 1470715)
Hallo, ich habe zwei Variablen TDateTime. In der einen Steht die Zeit und in der anderen das Datum. Kann man irgendwie ganz einfach das zusammenfügen ohne über einen String zu parsen?

Danke! Ich habe delphi 6!

Wenn ich dich richtig verstanden habe, kanst du sie einfach addieren. TDateTime ist nichts anderes als ein Float. Das Datum wird als z.B. 10000.0 gespeichert. Wenn du nur die Zeit hast, wird sie als 0.11111 gespeichert, also die Nachkommastellen sind die Zeit und das davor das Datum.

Hast du also folgende TDateTime kannst du dies einfach addieren:

Datum: 44041.0
Zeit: 0.7380289815

Dautm + Zeit = 44041.7380289815 = 29.07.2020 17:42:45

Es kommt aber drauf an wie du die Zeit gesetzt hast. Wenn du das mit Now machst ist da auch das Datum dabei. Wenn du nur die Funktion Time genutzt hast, ist es nur die Zeit, also 0.xxx oder bei Date das Datum ohne Zeit.

hoika 29. Jul 2020 18:25

AW: Date und Time von DateTime zusammenfügen
 
Hallo,
var3:= DateOf(var1)+TimeOf(var2)

Wobei es auch schon oben stand (DateOf=Trunc, TimeOf=Frac).


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:47 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