AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Es fehlt ein ZEIT Literal

Ein Thema von QuickAndDirty · begonnen am 5. Aug 2009 · letzter Beitrag vom 6. Aug 2009
Antwort Antwort
Seite 1 von 2  1 2      
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#1

Es fehlt ein ZEIT Literal

  Alt 5. Aug 2009, 17:08
OK, ich habe Delphi 7 im Einsatz.
Und es kotzt mich mittlerweile an das ich immer sowas in der art schrieben muss.
If Zeitdatum1-zeitdatum2 >= [i][b]Strtotime[/b][/i]('00:02') then Ich benutze javaFX das kennt zeit literale da sind 2h 7min 2s absolut einfach zu gebrauchen.

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.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#2

Re: Es fehlt ein ZEIT Literal

  Alt 5. Aug 2009, 17:39
Zitat von QuickAndDirty:
OK, ich habe Delphi 7 im Einsatz.
Und es kotzt mich mittlerweile an das ich immer sowas in der art schrieben muss.
Buh, was für eine Ausdrucksweise


If Zeitdatum1-zeitdatum2 >= [i][b]Strtotime[/b][/i]('00:02') then 1) geht das auch auch einfacher und schneller (Beispiel folgt)
und b) unterstützen die Delphitags hier keine Formatierungen (was glaubst Du wie lange ich gerätselt habe, was [i] in dem Zusammenhang soll.

If ((Zeitdatum1-zeitdatum2) >= (2* 1/86400)) then // Lieber einmal zu viel geklammert als einmal zu wenig Aber es gibt übrigens auch in den DateUtils Delphi-Referenz durchsuchenMinutesBetween. Damit ist es ganz einfach.
If MinutesBetween(Zeitdatum1,zeitdatum2) >= 2 then // WOW!

Zitat von QuickAndDirty:
Ich benutze javaFX das kennt zeit literale da sind 2h 7min 2s absolut einfach zu gebrauchen.
Mit vermutlich vernachlässigbarer Performance...im Sinne von "Reden wir lieber nicht drüber "


Sherlock
Oliver
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Es fehlt ein ZEIT Literal

  Alt 5. Aug 2009, 17:44
Zitat von Sherlock:
Mit vermutlich vernachlässigbarer Performance...im sinne von "Reden wir lieber nciht drüber "
Kommt drauf an - wenn beide Schreibweisen der Konstanten (also auch bei Verwendung von StrToTime) schon vom Compiler ausgewertet werden können, ist der Laufzeitunterschied praktisch null.

Cheers,
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#4

Re: Es fehlt ein ZEIT Literal

  Alt 6. Aug 2009, 10:15
Zitat von Sherlock:
Zitat von QuickAndDirty:
OK, ich habe Delphi 7 im Einsatz.
Und es kotzt mich mittlerweile an das ich immer sowas in der art schrieben muss.
Buh, was für eine Ausdrucksweise
Du solltest mal meine Bezeichner sehen....

Zitat von Sherlock:
If Zeitdatum1-zeitdatum2 >= [i][b]Strtotime[/b][/i]('00:02') then 1) geht das auch auch einfacher und schneller (Beispiel folgt)
und b) unterstützen die Delphitags hier keine Formatierungen (was glaubst Du wie lange ich gerätselt habe, was [i] in dem Zusammenhang soll.
XD . OK . Wann wird dieser Fehler von VBulletin geändert? (Ich liebe die Kundenperspektive!)

Zitat von Sherlock:
If ((Zeitdatum1-zeitdatum2) >= (2* 1/86400)) then // Lieber einmal zu viel geklammert als einmal zu wenig
SUPER, ich bekomme kein ZEITLITERAL sonder ne Aufforderung mit Bruchteilen von Tagen zu RECHNEN.
Mann, Mann, Mann Du.

(2* 1/86400) das ist NICHT
Strtotime('00:02') SONDERN
Strtotime('00:00:02') Danke für die Demonstration der totalen Untauglichkeit dieser Methode Zeitliterale zu imitieren.
Wie du sicher selbst zugeben musst, ist dieser Weg recht FEHLERANFÄLLIG.

Zitat von Sherlock:
Aber es gibt übrigens auch in den DateUtils Delphi-Referenz durchsuchenMinutesBetween. Damit ist es ganz einfach.
If MinutesBetween(Zeitdatum1,zeitdatum2) >= 2 then // WOW!
Toll. Denkst du es geht mir ausschließlich um Minuten?

Zitat von Sherlock:
Zitat von QuickAndDirty:
Ich benutze javaFX das kennt zeit literale da sind 2h 7min 2s absolut einfach zu gebrauchen.
Mit vermutlich vernachlässigbarer Performance...im Sinne von "Reden wir lieber nicht drüber "
Die Performance wird vom Literal nicht beeinflusst. Und du musst zu geben das es im Hinblick auf einen "lesbaren" Quellcode
mehr Sinn macht als
(2*1/24)+(7*1440)+(2*1/86400) GIB ES ZU!!! *Pistole auf die Brust setzt*
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Laufi

Registriert seit: 21. Mär 2006
86 Beiträge
 
#5

Re: Es fehlt ein ZEIT Literal

  Alt 6. Aug 2009, 10:39
Hallo!

Du kannst ja einfach schlau sein und sagen
Delphi-Quellcode:
const
  h = 1/24;
  min = h/60;
  s = min/60;
Dann kannst du immer schreiben
2*h + 7*min + 2*s

Liebe Grüsse
Laufi
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#6

Re: Es fehlt ein ZEIT Literal

  Alt 6. Aug 2009, 10:50
@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...
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#7

Re: Es fehlt ein ZEIT Literal

  Alt 6. Aug 2009, 10:55
Zitat von QuickAndDirty:
Zitat von Sherlock:
Zitat von QuickAndDirty:
OK, ich habe Delphi 7 im Einsatz.
Und es kotzt mich mittlerweile an das ich immer sowas in der art schrieben muss.
Buh, was für eine Ausdrucksweise
Du solltest mal meine Bezeichner sehen....


Zitat von QuickAndDirty:
Zitat von Sherlock:
Aber es gibt übrigens auch in den DateUtils Delphi-Referenz durchsuchenMinutesBetween. Damit ist es ganz einfach.
If MinutesBetween(Zeitdatum1,zeitdatum2) >= 2 then // WOW!
Toll. Denkst du es geht mir ausschließlich um Minuten?
Diese Funktion hat viele Geschwister, die sich alle um die jeweiligen Zeitabschnitte kümmern können von YearsBetween bis MillisecondsBetween ist alles da.

Zitat von QuickAndDirty:
Zitat von Sherlock:
Zitat von QuickAndDirty:
Ich benutze javaFX das kennt zeit literale da sind 2h 7min 2s absolut einfach zu gebrauchen.
Mit vermutlich vernachlässigbarer Performance...im Sinne von "Reden wir lieber nicht drüber "
Die Performance wird vom Literal nicht beeinflusst. Und du musst zu geben das es im Hinblick auf einen "lesbaren" Quellcode
mehr Sinn macht als
(2*1/24)+(7*1440)+(2*1/86400) GIB ES ZU!!! *Pistole auf die Brust setzt*
Ja doch

Laufis Lösung ist doch gut...einfach entsprechende Konstanten definieren und fertig.

Sherlock
Oliver
  Mit Zitat antworten Zitat
WInfo

Registriert seit: 3. Jan 2009
36 Beiträge
 
#8

Re: Es fehlt ein ZEIT Literal

  Alt 6. Aug 2009, 10:56
Wie wäre es mit einem überladenen Record, in welchem die Konvertierung implizit vorgenommen wird? Dann kannst du Problemlos schreiben

Delphi-Quellcode:
if dt1 - dt2 < '00:00then
if dt1 - dt2 < '20sthen
if dt1 - dt2 < '20mthen
...
Wäre dies nicht ein Vorschlag?
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#9

Re: Es fehlt ein ZEIT Literal

  Alt 6. Aug 2009, 11:01
@WInfo:
Das geht sicher nicht unter delphi 7 oder?

Ansonsten, wie würde das aussehen? Es muss halt zu TDatetime zuweisungskompatibel sein.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Es fehlt ein ZEIT Literal

  Alt 6. Aug 2009, 11:07
Vielleicht helfen dir auch die Bibliotheksroutinen aus SysUtils weiter: DecodeDate, EncodeDate, FormatDateTime...

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:38 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