Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - StrToTime ?
Goaznic - Fr 07.10.11 09:18
Titel: StrToTime ?
Ich habe ein Memo mit einer Formatierten Zeit.
Und ich habe einen neuen Wert, ebenfalls formatierte Zeit, in einem Edit.
Mein Ziel ist jetzt eigentlich folgendes:
Delphi-Quelltext
1:
| if 'Zeit aus Memo' - 'Zeit aus Edit' < 0 then |
Aber Memo und Edit sind ja String. Wie muss ich das umwandeln? StrToTime geht da ja auch nicht, weil's formatiert ist.
Also beide Zeiten sind aus FormatDateTime('nn:ss:zzz', Startzeit - Time) entstanden.
Moderiert von
Narses: Topic aus VCL (Visual Component Library) verschoben am Fr 07.10.2011 um 11:43
Moderiert von
Narses: Delphi-Tags hinzugefügt
Dude566 - Fr 07.10.11 10:52
Also ich kann Zeiten dieses Formats so miteinander verrechnen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.btnShowGapClick(Sender: TObject); var Time1, Time2, GapTime : TDateTime; begin try Time1 := StrToDateTime(edit1.Text); Time2 := StrToDateTime(edit2.Text); GapTime := Time1 - Time2; ShowMessage(TimeToStr(GapTime)); except ShowMessage('Error'); end; end; |
Oder wo liegt dein Problem?
Narses - Fr 07.10.11 10:52
Moin!
Goaznic hat folgendes geschrieben : |
Ich habe ein Memo mit einer Formatierten Zeit.
Und ich habe einen neuen Wert, ebenfalls formatierte Zeit, in einem Edit.
Mein Ziel ist jetzt eigentlich folgendes:
Delphi-Quelltext 1:
| if 'Zeit aus Memo' - 'Zeit aus Edit' < 0 then | Aber Memo und Edit sind ja String. |
Das hört sich doch nach dem klassischen Anfängerfehler an, visuelle Komponenten zur Datenhaltung zu missbrauchen. ;) Du solltest die Daten in internen Strukturen im entsprechenden Datenformat aufbewahren und nur zur Anzeige (für den Menschen) umwandeln. :idea:
Goaznic hat folgendes geschrieben : |
| Wie muss ich das umwandeln? |
Die einzelnen Elemente selbst parsen und dann damit wieder umwandeln:
| DOH hat folgendes geschrieben: |
function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;
Die Funktion gibt einen Wert des Typs TDateTime zurück, der einer bestimmten Stunde, Minute, Sekunde und Millisekunde entspricht.
Unit
SysUtils
Kategorie
Datum/Zeit
Delphi-Syntax:
Delphi-Quelltext 1:
| function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime; |
Beschreibung
EncodeTime codiert die angegebenen Werte für Stunde, Minute, Sekunde und Millisekunde in einen Wert des Typs TDateTime.
Für Hour sind Werte von 0 bis 23 zulässig.
Die gültigen Werte für Min und Sec liegen zwischen 0 und 59.
Die gültigen Werte für MSec liegen zwischen 0 und 999.
Befinden sich die angegebenen Werte nicht innerhalb der Bereiche, wird eine EConvertError-Exception ausgelöst.
Der Rückgabewert ist eine Zahl zwischen 0 und 1 (inklusiv), die die angegebene Zeit in Nachkommastellen ausdrückt. Der Wert 0 entspricht Mitternacht, 0.5 ist Mittag, 0.75 ist 18:00 abends usw. |
cu
Narses
Goaznic - Fr 07.10.11 10:58
Danke, das scheint die Lösung für mein Problem zu sein. :D
Dude566 - Fr 07.10.11 11:07
Aber warum soll er es denn erst "umkodieren" wenn er doch die Zeiten im Format nn:ss:zzz hat? Damit lässt sich doch prima rechnen, wie oben in meinem Beispiel.
Goaznic - Fr 07.10.11 11:36
Ich probier beides mal aus und gebe dann eine Rückmeldung! ;D
---
Moderiert von
Narses: Beiträge zusammengefasst---
Also zu Dude566s Idee: Wenn ich StrToDateTime mach, dann bekomme ich eine Meldung '00:05:412 ist keine gültige Datums- und Uhrzeitangabe' oder so ähnlich ...
Jetzt wende ich mich mal der Idee von Narses zu.^^
Dude566 - Fr 07.10.11 17:28
Wie sieht denn der string aus, den du damit in eine Zeit umwandelst?
platzwart - Fr 07.10.11 22:42
'00:05:412' -> hh:mm:MMM ?
Goaznic - Mo 10.10.11 11:40
@platzwart: was meinst du mit
??? hh ist doch stunden, mm Minuten und MMM ... keine Ahnung. Aber ich hab Minuten, Sekunden und Millisekunden, also nn:ss:zzz
@Dude566: Also mein String sieht wie gesagt so aus: 00:05:412
:D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!