![]() |
Es fehlt ein ZEIT Literal
OK, ich habe Delphi 7 im Einsatz.
Und es kotzt mich mittlerweile an das ich immer sowas in der art schrieben muss.
Delphi-Quellcode:
Ich benutze javaFX das kennt zeit literale da sind
If Zeitdatum1-zeitdatum2 >= [i][b]Strtotime[/b][/i]('00:02') then
Delphi-Quellcode:
absolut einfach zu gebrauchen.
2h 7min 2s
Ab welcher Version hat Delphi Zeitliterale ? Und wenn keine das hat, dann bitte ich die jenigen die mit dem Entwicklerteam einen gewissen Kontakt pflegen doch bitttttte den Tipp einzureichen das Zeitliterale in dem NEUEN COMPILER berücksichtigt werden sollten. |
Re: Es fehlt ein ZEIT Literal
Zitat:
Delphi-Quellcode:
1) geht das auch auch einfacher und schneller (Beispiel folgt)
If Zeitdatum1-zeitdatum2 >= [i][b]Strtotime[/b][/i]('00:02') then
und b) unterstützen die Delphitags hier keine Formatierungen (was glaubst Du wie lange ich gerätselt habe, was [i] in dem Zusammenhang soll.
Delphi-Quellcode:
Aber es gibt übrigens auch in den DateUtils
If ((Zeitdatum1-zeitdatum2) >= (2* 1/86400)) then // Lieber einmal zu viel geklammert als einmal zu wenig
![]()
Delphi-Quellcode:
If MinutesBetween(Zeitdatum1,zeitdatum2) >= 2 then // WOW!
Zitat:
Sherlock |
Re: Es fehlt ein ZEIT Literal
Zitat:
Cheers, |
Re: Es fehlt ein ZEIT Literal
Zitat:
Zitat:
Zitat:
Mann, Mann, Mann Du.
Delphi-Quellcode:
das ist NICHT
(2* 1/86400)
Delphi-Quellcode:
SONDERN
Strtotime('00:02')
Delphi-Quellcode:
Danke für die Demonstration der totalen Untauglichkeit dieser Methode Zeitliterale zu imitieren.
Strtotime('00:00:02')
Wie du sicher selbst zugeben musst, ist dieser Weg recht FEHLERANFÄLLIG. Zitat:
Zitat:
mehr Sinn macht als
Delphi-Quellcode:
GIB ES ZU!!! *Pistole auf die Brust setzt* ;)
(2*1/24)+(7*1440)+(2*1/86400)
|
Re: Es fehlt ein ZEIT Literal
Hallo!
Du kannst ja einfach schlau sein und sagen
Delphi-Quellcode:
Dann kannst du immer schreiben
const
h = 1/24; min = h/60; s = min/60;
Delphi-Quellcode:
:shock:
2*h + 7*min + 2*s
Liebe Grüsse Laufi |
Re: Es fehlt ein ZEIT Literal
@Laufi:
Schon klar. Mir gefällt es aber deutlich besser ohne *+*+* Und wenn Überhaupt dann müssten diese Konstanten Global(System Unit)definiert sein. Das 2. Problem ist das, es als Bezeichner die Funktion MATH.MIN überschreibt bzw. h und s als oft als lokale Hilfsvariablen verwendet werden. 2h oder 3s dagegen kann nichts anderes als ein Literal sein. Wie dem auch sei. Es wäre schön wenn sich irgendwer für eine elegante Lösung im nächsten Kompiler von Borland/Inprise/Codegear/Embarcadero einsetzt. Ich weiß nicht mehr wer es war aber irgendjemand hier aus dem Forum hat soweit ich das mal mitbekommen habe ab und zu mal Kontakt zu einem der Entwickler... |
Re: Es fehlt ein ZEIT Literal
Zitat:
Zitat:
Zitat:
Laufis Lösung ist doch gut...einfach entsprechende Konstanten definieren und fertig. Sherlock |
Re: Es fehlt ein ZEIT Literal
Wie wäre es mit einem überladenen Record, in welchem die Konvertierung implizit vorgenommen wird? Dann kannst du Problemlos schreiben
Delphi-Quellcode:
Wäre dies nicht ein Vorschlag?
if dt1 - dt2 < '00:00' then
if dt1 - dt2 < '20s' then if dt1 - dt2 < '20m' then ... |
Re: Es fehlt ein ZEIT Literal
@WInfo:
Das geht sicher nicht unter delphi 7 oder? Ansonsten, wie würde das aussehen? Es muss halt zu TDatetime zuweisungskompatibel sein. |
Re: Es fehlt ein ZEIT Literal
Vielleicht helfen dir auch die Bibliotheksroutinen aus SysUtils weiter: DecodeDate, EncodeDate, FormatDateTime...
Grüße Mikhal |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz