![]() |
Re: String To Int/Time
Hallo Stelo,
steht doch alles schon in den Beiträgen:
Delphi-Quellcode:
Bis bald Chemiker
var
min: Extended; UhrZeit: Extended; AnfangsUhrZeit: Extended; I: Integer; begin AnfangsUhrZeit:= strToTime('02:00'); min:= strToTime('00:01'); for I := 0 to 61 do begin UhrZeit:= AnfangsUhrZeit+(min*i); ShowMessage(FormatDateTime('HH:NN',UhrZeit)); end; end; |
Re: String To Int/Time
Ja schon klar.
Also mein Code sieht jetzt wie folgt aus:
Delphi-Quellcode:
Nun kommt zwar meine Fehlermeldung, wenn ich genau die gleiche Zeit eingebe. Doch wenn meine Zeit denn 10min größer ist, meckert er komischer Weise nicht mehr rum! Oo
min:= strToTime('00:01');
for j:= 0 to 29 do begin if StrToTime(uhrzeit) = StrToTime(copy(zeile,1,pos(';',zeile)-1)) + (min*j) then begin showmessage ('Zu dieser Zeit spielt bereits eine andere Band.'); abort; end; end; Seht ihr vllt. den Fehler? Und Danke noch mal für die Hilfe. |
Re: String To Int/Time
Delphi-Quellcode:
so sollte es eigentlich gehen, nicht getestet!!
var
TimeToAdd: TDateTime; NeueUhrzeit: String; begin TimeToAdd := StrToTime(Edit1.Text); // jetzt kannst du mit folgenden bsp zb sekunden min und so addieren (die 1 kann auch geändert werden zu 20 oder weiß ich was): TimeToAdd := IncMinute(TimeToAdd, 1); //addiert ne min TimeToAdd := IncHour(TimeToAdd, 1); //addiert ne stunde TimeToAdd := IncSecond(TimeToAdd, 1); //addiert ne sekunde TimeToAdd := IncMilliSecond(TimeToAdd, 1); //addiert ne millisekunde //und dann noch alles wieder in einen string gewandelt: NeueUhrzeit := TimeToStr(TimeToAdd); end; edit verständnis halber noch was geändert!! |
Re: String To Int/Time
Hallo Stelo,
Delphi-Quellcode:
Was kommt hier raus???
StrToTime(copy(zeile,1,pos(';',zeile)-1))
Bis bald Chemiker |
Re: String To Int/Time
Zitat:
Das gibt irgend ein seltsames Datum aus, obwohl es ja eigtl. eine Uhrzeit ist. :cry: |
Re: String To Int/Time
Ein TDateTime besteht aus einem datum und einem Zeitwert. Es handelt sich um einen Double, bei dem vor dem komma das datum und nach dem Komma die Uhrzeit steht. Falls du den 31.12.1899 als Datum meinst, entspricht das dem Wert 0.
|
Re: String To Int/Time
Zitat:
Also d.h. dieser Teil funktioniert jetzt wieder: StrToTime(uhrzeit) = StrToTime(copy(zeile,1,pos(';',zeile)-1)) Nur das mit dem x Minuten hochzählen will einfach nicht funktionieren. IncMinute klappt bei mir irgendwie auch nicht (Undeclared indentifier). Hab ich etwas übersehen? EDIT: Um euch mein Problem noch mal genauer zu erklären (ich hatte vorher nämlich einen kleinen Denkfehler) erklär ich es eben noch mal ... Und zwar ist es so, dass uhrzeit von dem Anwender eingegeben wird. zeile,1,pos(';',zeile)-1 ist eine in der TStringList gespeicherte Zeit. Nun sollen alle Zeiten, die in der TStringList gespeichert sind durchgegangen werden. Doch da jede Band 29min spielen muss, muss die eingegeben Uhrzeit um 29min hochgezählt werden um festzustellen, dass nicht nach 15min schon eine andere Band spielen würde. Ich hoffe ihr versteht jetzt mein Problem und findet den Fehler nun vllt. eher! :) Vielen Dank noch einmal für die Mühe. |
Re: String To Int/Time
Zitat:
also so:
Delphi-Quellcode:
uses
windows, sysutils, ... dateutils, //hier die dateutils eintragen, die reihenfolge ist dabei unwichtig, wo du sie einfügst!! forms; |
Re: String To Int/Time
Vielen Dank, genau das war der fehler. :oops:
ich habe es jetzt wie folgt geschrieben:
Delphi-Quellcode:
Bei gleich Zeit wird wie gewollt die Fehlermeldung ausgegeben, doch wenn jetzt z.B. die gespeicherte Zeit 12:30 ist und ich 12:20 eingebe, wird zwar keine Fehlermeldung ausgegeben, aber es wird auch nichts gespeichert, also wird es anscheind doch abgebrochen. :gruebel: Das ist sehr seltsam.
if IncMinute(min, j) = StrToTime(copy(zeile,1,pos(';',zeile)-1)) then
Also, dass ist jetzt wirklich seltsam. Es funktioneirt jetzt, nur nicht, wenn sich um eine Uhrzeit in der 12 Stunde handelt. Also mit 14:20 usw. kein Problem, nur bei 12:xx macht es Probleme! :shock: |
Re: String To Int/Time
wie ich jetzt schon paar mal geschrieben hab, schaue dir mal GENAU die dateutils unit an, in der hast du sehr viele funktionen die dir das problem lösen!!!
und so wie du es gerade gemacht hast, würd ich es nicht machen, da es nicht nötig ist, den timestring noch mit pos und copy usw zu zerlegen und drinn umherzustückeln, dafür gibt es alles funktionen!! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:52 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-2025 by Thomas Breitkreuz