Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zeit addieren ? (https://www.delphipraxis.net/138223-zeit-addieren.html)

aaaaaaaaaa_10 5. Aug 2009 11:59


Zeit addieren ?
 
Wie kann ich zu einer Zeitvariable x (hh.mm.ss) 10 Sekunden dazu addieren?

DeddyH 5. Aug 2009 12:00

Re: Zeit addieren ?
 
Schau mal in der Unit DateUtils nach.

[edit] "U" vergessen :oops: [/edit]

himitsu 5. Aug 2009 12:07

Re: Zeit addieren ?
 
Zitat:

Zitat von aaaaaaaaaa_10
Wie kann ich zu einer Zeitvariable x (hh.mm.ss) 10 Sekunden dazu addieren?

welches Format hat diese Variable ... der PC/Delphi kennt vieles ... String, TDateTime, UnixTime, Cardianl ala GetTickCount (msec seit ...) usw.

aaaaaaaaaa_10 5. Aug 2009 12:19

Re: Zeit addieren ?
 
Ist ein String.

Vasco da Gama 5. Aug 2009 12:25

Re: Zeit addieren ?
 
Delphi-Quellcode:
Zeit := Copy(Zeit, 0, 6) + IntToStr(StrToInt(Copy(Zeit, 6, 8)+10));
Habs nicht getestet, köntne aber gehen :D

himitsu 5. Aug 2009 12:28

Re: Zeit addieren ?
 
dann in ein Format umwandeln, mit welchem man rechnen kann,
dann die Sekunden dazurechnen und alles wieder in den String zurück

schau mal in die OH, was sie alles zu StrTo... bzw. StringTo... dir bietet und dann gibt es ja die Umkehrfunktionen ala ...ToStr

[add]
@Vasco da Gama
ist möglich, aber was machst du, wenn die Sekunden vorher bei 55 standen?
65 ist ja wohl falsch, also dann eventuell noch die Minuten ändern (dem Überlauf entsprechend) und falls die Minuten auch schon auf 59 standen, dann das Selbe nochmal mit den Stunden :angel2:

TeronG 5. Aug 2009 12:33

Re: Zeit addieren ?
 
@Vasco da Gama: :shock:
nice ... erinnert mich n bissel an "zahl negieren"

Zwar auch nicht viel mehr Schritte als es mit StringToTime und TimeToString hin und her zu wandeln. (dazwischen natürlich noch 10 / 86400 dazurechnen ^^).
Aber (me) doch n bissel verwirrend. :mrgreen:

Vasco da Gama 5. Aug 2009 12:36

Re: Zeit addieren ?
 
Zitat:

Zitat von TeronG
@Vasco da Gama: :shock:
nice ... erinnert mich n bissel an "zahl negieren"

Zwar auch nicht viel mehr Schritte als es mit StringToTime und TimeToString hin und her zu wandeln. (dazwischen natürlich noch 10 / 86400 dazurechnen ^^).
Aber (me) doch n bissel verwirrend. :mrgreen:

Wenn mans nur einmal für ein Testprogramm braucht oder sich nicht mit Datumsformaten auseinandersetzen will, dann ist das doch auch eine Lösung :D

aaaaaaaaaa_10 5. Aug 2009 12:37

Re: Zeit addieren ?
 
Also ich bin jetzt eher darauf aus, dass ich nicht 10 sek dazu zähle, sondern einfach die alte und die neue zeit (neue variable, in die ich nach bedinungserfüllung neue zeit schreibe) subtrahiere mit secondsbetween o.ä. und dann schaue ob es 10 sek sind.

allerdings ist dann ja y am anfang leer und wenn ich dann subtrahiere, dann steht da " '' ist keine gültige Uhrzeit"

Vasco da Gama 5. Aug 2009 12:39

Re: Zeit addieren ?
 
Zitat:

Zitat von himitsu
[...]
[add]
@Vasco da Gama
ist möglich, aber was machst du, wenn die Sekunden vorher bei 55 standen?
65 ist ja wohl falsch, also dann eventuell noch die Minuten ändern (dem Überlauf entsprechend) und falls die Minuten auch schon auf 59 standen, dann das Selbe nochmal mit den Stunden :angel2:

Naja, war ja nur eine Idee, mit Datumsformaten zu arbeiten wär dann wohl doch besser :mrgreen:

DeddyH 5. Aug 2009 12:39

Re: Zeit addieren ?
 
Wie ermittelst Du denn die neue Zeit? Ist das wieder ein String? Wenn ja, wieso?

aaaaaaaaaa_10 5. Aug 2009 13:03

Re: Zeit addieren ?
 
Nachdem ich die relevanten Daten übernommen habe, mache ich
Delphi-Quellcode:
time := WL.Strings[1];
In WL.Strings[1] steht die alte Zeit. Wenn neue Zeit kommt, soll geschaut werden , ob die uhrzeiten 10 sek auseinander liegen, wenn nein : auf neue uhrzeit warten
wenn ja : Daten wieder übernehmen.

Beide variablen sind strings (Die umwandlung ist ja nicht das problem)

TeronG 5. Aug 2009 13:24

Re: Zeit addieren ?
 
Zitat:

Zitat von himitsu
schau mal in die OH, was sie alles zu StrTo... bzw. StringTo... dir bietet und dann gibt es ja die Umkehrfunktionen ala ...ToStr

und TryStrTo... währe evtl auch noch n Blick wert.

aaaaaaaaaa_10 5. Aug 2009 13:26

Re: Zeit addieren ?
 
Was soll das ewige StrTo.. toStr..

Hat das was mit meiner Frage zu tun.

Vasco da Gama 5. Aug 2009 13:27

Re: Zeit addieren ?
 
Ja!
mit StrToInt kannst du strings in Integer umwandeln, wenn du da mal in die Hilfe schaust, dann gibts das für sehr viele Typen.

TeronG 5. Aug 2009 13:36

Re: Zeit addieren ?
 
Zitat:

Zitat von aaaaaaaaaa_10
Was soll das ewige StrTo.. toStr..
Hat das was mit meiner Frage zu tun.

klar ... "nur" so kannst du mit Datum/Zeit vernünftig rechnen.
Allerdings würde ich nicht Integer sondern Date(Time)/Float verwenden.
Dann kannste einfach direkt vergleichen
Delphi-Quellcode:
 abs(zahl1-zahl2)
Oder die Zeit zerlegen (Decode-Time, -Date, ...) et cetera, et cetera


EDIT: Als ob wir jemals OT werden würden... tztztz :roll:

aaaaaaaaaa_10 5. Aug 2009 13:49

Re: Zeit addieren ?
 
Meine Frage war wie ich da 10 sek hinzu addieren kann,nicht wie ich Typen umwandle. Das bekomme ich wohl noch hin. Danke

Vasco da Gama 5. Aug 2009 13:50

Re: Zeit addieren ?
 
Wenn du die Typen umwandelst(den String in TTime) dann kannst du mit + relativ einfach arbeiten...

Sharky 5. Aug 2009 13:51

Re: Zeit addieren ?
 
Zitat:

Zitat von aaaaaaaaaa_10
Meine Frage war wie ich da 10 sek hinzu addieren kann,nicht wie ich Typen umwandle. Das bekomme ich wohl noch hin. Danke

Hai,

schaue Dir doch einfach an wie ein TDateTime aufgebaut ist. Dann weisst Du auch wie Du eine beliebige Zeitspanne addieren kannst.
Oder verwende die Methoden aus den DateUtils.

aaaaaaaaaa_10 5. Aug 2009 13:51

Re: Zeit addieren ?
 
Ist doch alles schon passiert. Hab es hinbekommen.


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