AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein TDate und TTime zu TDateTime wandeln

TDate und TTime zu TDateTime wandeln

Ein Thema von Bünni · begonnen am 14. Apr 2019 · letzter Beitrag vom 14. Apr 2019
Antwort Antwort
Bünni

Registriert seit: 4. Mär 2019
67 Beiträge
 
#1

TDate und TTime zu TDateTime wandeln

  Alt 14. Apr 2019, 10:02
Vielleicht zuviel Kaffee getrunken oder zu wenig geschlafen. Oder es fehlt an Erfahrung mit dem Umgang mit Datumswerten?
Zur Auswahl stehen ein Datum TDate und eine Uhrzeit TTime. Wie erzeugt man aus dieser Kombination einen neuen TDateTime, egal welcher Datums- und Uhrzeitformatierung ein System eingstellt hat?

Als Notlösung mache ich das so
Delphi-Quellcode:
 FS := FormatSettingsCreateEx(',', '.', ':', '/'); // meine eigene Funktion, damit es kürzer wird

 DT := StrToDateTime( FormatDateTime('dd/mm/yyyy', Date, FS) + ' ' + TimeToStr(Time, FS), FS) );

Geändert von Bünni (14. Apr 2019 um 10:13 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TDate und TTime zu TDateTime wandeln

  Alt 14. Apr 2019, 10:14
Theoretisch
<DateTime> := <Date> + <Time>; Um sicher zu Gehen:
<DateTime> := Trunc(<Date>) + Frac(<Time>);
Markus Kinzler
  Mit Zitat antworten Zitat
Bünni

Registriert seit: 4. Mär 2019
67 Beiträge
 
#3

AW: TDate und TTime zu TDateTime wandeln

  Alt 14. Apr 2019, 10:16
Funktioniert wie geschmiert.
Ich hatte zuerst Ausschau nach einem Typen gehalten, dem man ein TDate sowie TTime zuweisen kann aber den scheint es leider nicht zu geben.

Funktioniert aber auch so wie von dir beschrieben sehr gut auf die Sekunde genau.

DT := Trunc(System.SysUtils.Date) + Frac(System.SysUtils.Time);
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TDate und TTime zu TDateTime wandeln

  Alt 14. Apr 2019, 10:18
Zitat:
Ich hatte zuerst Ausschau nach einem Typen gehalten, dem man ein TDate sowie TTime zuweisen kann aber den scheint es leider nicht zu geben.
Doch TDateTime.
Markus Kinzler
  Mit Zitat antworten Zitat
Bünni

Registriert seit: 4. Mär 2019
67 Beiträge
 
#5

AW: TDate und TTime zu TDateTime wandeln

  Alt 14. Apr 2019, 10:21
So meinte ich das. Hätte gleich ein Beispiel dranhängen sollen.

Delphi-Quellcode:
 DT.Date := System.SysUtils.Date;
 DT.Time := System.SysUtils.Time;
Der scheint durch die simple Addition von TDate (Tag N, Uhrzeit 00:00:00) und TTime aber wohl überflüssig zu sein.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.400 Beiträge
 
Delphi 7 Professional
 
#6

AW: TDate und TTime zu TDateTime wandeln

  Alt 14. Apr 2019, 11:02
DateTime ist eine Gleitkommazahl.

Date ist eine Gleitkommazahl, bei der der Nachkommaanteil = 0 ist.
Time ist eine Gleitkommazahl, bei der der Vorkommaanteil = 0 ist.

Vor dem Komma steht also sowohl bei Date, als auch bei DateTime das Datum, hinter dem Komma stehen bei DateTime und Time die Uhrzeit.

Date := Trunc(DateTime)
Time := Frac(DateTime)

HeutigesDatum := Trunc(Now)
AktuelleUhrzeit := Frac(Now)

Now := HeutigesDatum + AktuelleUhrzeit
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.173 Beiträge
 
#7

AW: TDate und TTime zu TDateTime wandeln

  Alt 14. Apr 2019, 11:15
Sehr ausführliche und verständliche Erklärung.
Sowas habe ich letztens auch gesucht und hier gefunden. Zeitkonvertierungen sind alles andere als einfach für mich. Für andere wie euch ein Klacks
Aber zum Glück gibt es noch Leute die genau so wenig Ahnung haben wie ich und so einfache Fragen stellen. SOLANGE es nicht ist wie man erkennt ob eine Zahn negativ ist ist alles OK.
Hier gibts ähnlichen Lesestoff https://www.delphipraxis.net/199740-...umsformat.html

Geändert von DieDolly (14. Apr 2019 um 12:25 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 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