AGB  ·  Datenschutz  ·  Impressum  







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

String To Int/Time

Ein Thema von Stelo · begonnen am 19. Mai 2008 · letzter Beitrag vom 20. Mai 2008
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#21

Re: String To Int/Time

  Alt 19. Mai 2008, 22:50
Hallo Stelo,

steht doch alles schon in den Beiträgen:

Delphi-Quellcode:
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;
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Stelo

Registriert seit: 12. Jan 2008
19 Beiträge
 
#22

Re: String To Int/Time

  Alt 19. Mai 2008, 22:57
Ja schon klar.
Also mein Code sieht jetzt wie folgt aus:

Delphi-Quellcode:
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;
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

Seht ihr vllt. den Fehler?

Und Danke noch mal für die Hilfe.
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#23

Re: String To Int/Time

  Alt 19. Mai 2008, 23:04
Delphi-Quellcode:
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;
so sollte es eigentlich gehen, nicht getestet!!

edit verständnis halber noch was geändert!!
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#24

Re: String To Int/Time

  Alt 19. Mai 2008, 23:27
Hallo Stelo,

StrToTime(copy(zeile,1,pos(';',zeile)-1)) Was kommt hier raus???

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Stelo

Registriert seit: 12. Jan 2008
19 Beiträge
 
#25

Re: String To Int/Time

  Alt 19. Mai 2008, 23:44
Zitat von Chemiker:
Hallo Stelo,

StrToTime(copy(zeile,1,pos(';',zeile)-1)) Was kommt hier raus???

Bis bald Chemiker
Da haben wir den Fehler.
Das gibt irgend ein seltsames Datum aus, obwohl es ja eigtl. eine Uhrzeit ist.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#26

Re: String To Int/Time

  Alt 20. Mai 2008, 06:31
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Stelo

Registriert seit: 12. Jan 2008
19 Beiträge
 
#27

Re: String To Int/Time

  Alt 20. Mai 2008, 11:18
Zitat von mkinzler:
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.
achso ok, danke. Ich hab jetzt eine Variable vom Typ TTime genommen und es klappt.

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.
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#28

Re: String To Int/Time

  Alt 20. Mai 2008, 12:03
Zitat von Stelo:
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?
ja bestimmt, du musst die unit "dateutils" unter uses einbinden!!

also so:


Delphi-Quellcode:
uses
  windows,
  sysutils,
  ...
  dateutils, //hier die dateutils eintragen, die reihenfolge ist dabei unwichtig, wo du sie einfügst!!
  forms;
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Stelo

Registriert seit: 12. Jan 2008
19 Beiträge
 
#29

Re: String To Int/Time

  Alt 20. Mai 2008, 12:08
Vielen Dank, genau das war der fehler.

ich habe es jetzt wie folgt geschrieben:
if IncMinute(min, j) = StrToTime(copy(zeile,1,pos(';',zeile)-1)) then 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. Das ist sehr seltsam.
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 12x macht es Probleme!
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#30

Re: String To Int/Time

  Alt 20. Mai 2008, 12:18
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!!
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 01:25 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