Delphi Uhrzeitberechnung

Joined
Feb 21, 2008
Messages
5,776
Points
0
Hallo, kann mir jemand mal helfen. Wir haben in Informatik sone Uhrzeitberechnung gemacht aber ich hatte das nicht ganz verstanden da unsere Lehrerin das überhaupt nicht erklärt hat -.-.
Und zwar sollen wir 2 Uhrzeiten zusammenrechnen, das Ergebnis soll dann in den 3 unteren edit Feldern stehen, eins ist für Stunden, eins minuten und eins sekunden. Ich hab mal nen screenshot rangehangen, damit ihr wisst was ich meine.
Somit soll also in edit 7-9 das Ergebnis angezeigt werden.

Hier mal meine Beschreibung für die einzelnen edit Felder

var s1,s2,s3,s4,s5,m1,m2,m3,m4,m5,h1,h2,h3,h4:integer;
begin

h1:=strtoint(edit1.text);
m1:=strtoint(edit2.text);
s1:=strtoint(edit3.text);
h2:=strtoint(edit4.text);
m2:=strtoint(edit5.text);
s2:=strtoint(edit6.text);
h3:=strtoint(edit7.text);
m3:=strtoint(edit8.text);
s3:=strtoint(edit9.text);

so hab ich also die Variablen belegt
nun hat unsere Lehrerin uns folgenden Text vorne an die Tafel rangeschrieben

s3:=s1+s2;
s4:=s3 mod 60;
m3:=s5+m1+m2;
m4:=m3 mod 60;
m5:=m3 div 60;
h3:=m5+h1+h2;
h4:=h3 mod 24;

Die Befehle div und mod sollten wir verwenden, da die sekunden und minuten ab 60 wieder von vorne anfangen müssen und die Stunden gehen ja nur bis 24.

problem is halt, das unsere Lehrerin viel mehr Variablen verwendet hat, als ich mit Feldern belegt hab (hab sie aber trotzdem oben bei var erwähnt)

Trotz meiner Unwissenheit, wie ich das genau berechnen soll, hab ich schonmal die Ausgabe formuliert und zwar:

edit7.text:=inttostr(h3);
edit8.text:=inttostr(m3);
edit9.text:=inttostr(s3);

wenn man sich das jetzt anguckt, sieht man klar das das nicht funktionieren kann, das war halt das was ich noch in der Schule geschafft hab

Meine Frage ist jetzt ob mir jemand sagen kann wie ich diese zwei Uhrzeiten zusammenrechenen kann unter Verwendung der Befehle mod und div, ich weiß es nämlcih nicht und am Dienstag schreiben wir darüber ne Klassenarbeit :/
also wäre echt nett, wenn mir jemand helfen könnte!
MFG RoToR
 

Attachments

  • sda.JPG
    sda.JPG
    190.2 KB · Views: 38
vielleicht mit IF abfragen? ICh hab keine ahnung von Delphi ^^"

also wenns über 60 ist dann die nächste var +1
 
Vermutlich sind keine Uhrzeiten im klassischen Sinn gemeint, sondern eher zwei Zeiten ganz allgemein. Beispielsweise bei zwei 800m Läufen, wo sich die Gesamtzeit dann aus beiden Einzelzeiten zusammensetzt.

Bei dem Problem selber kann ich leider nicht helfen :D
 
Wo liegt der Sinn darin 2 Uhrzeiten zu addieren???

Frag mich nicht nach dem Sinn, den kenn ich nämlich auch nicht :D
wichtig ist halt das ich diese 2 Befehle vernünftig anwenden kann

@ Fix: das stimmt, dafür könnte man es verwenden
 
Für mich sieht der Code ganz gut aus und sollte doch funktionieren?
(hab nur kurz drüber geschaut)

Die übrigen Variablen werden als Zwischenspeicher gebraucht.
 
Code:
[B]var[/B] s1,s2,s3,s4,s5,m1,m2,m3,m4,m5,h1,h2,h3,h4:integer;
[B]begin[/B]

 h1:=strtoint(edit1.text);
 m1:=strtoint(edit2.text);
 s1:=strtoint(edit3.text);
 h2:=strtoint(edit4.text);
 m2:=strtoint(edit5.text);
 s2:=strtoint(edit6.text);

[COLOR="#008000"] // Ich denke es bringt nicht viel hier die Zielfelder auszulesen[/COLOR]
[COLOR="Red"] h3:=strtoint(edit7.text);
 m3:=strtoint(edit8.text);
 s3:=strtoint(edit9.text);[/COLOR]

 s3:=s1+s2; [COLOR="#008000"]// Summe der Sekunden, könnte jetzt aber über >= 60 sein![/COLOR]
 s4:=s3 mod 60; [COLOR="#008000"]// Anzahl an Sekunden unter 60, OK[/COLOR]
[COLOR="Red"] s5:=s3 div 60;[/COLOR][COLOR="#008000"]// Ich denke hier hat diese Zeile gefehlt[/COLOR]
 m3:=s5+m1+m2; [COLOR="#008000"]// Summe der Minuten + Anzahl der Überläufe der Sekunden[/COLOR]
 m4:=m3 mod 60; [COLOR="#008000"]// Anzahl an Minuten unter 60, OK[/COLOR]
 m5:=m3 div 60; [COLOR="#008000"]// Anzahl der Überläufe, muss in nachfolgender Zeile auf Stunden drauf addiert werden[/COLOR]
 h3:=m5+h1+h2; [COLOR="#008000"]// Anzahl der Stunden, könnte aber >=24 sein![/COLOR]
 h4:=h3 mod 24; [COLOR="#008000"]// Anzahl an Stunden unter 24, OK[/COLOR]

 edit7.text:=inttostr([COLOR="#ff0000"]h3[/COLOR]); [COLOR="#008000"]// h4[/COLOR]
 edit8.text:=inttostr([COLOR="#ff0000"]m3[/COLOR]); [COLOR="#008000"]// m4[/COLOR]
 edit9.text:=inttostr([COLOR="Red"]s3[/COLOR]); [COLOR="#008000"]// s4[/COLOR]
 
Vielen dank schonmal, werd ich Morgen gleich mal ausprobieren ;)
 
Jop, außerdem glaub ich nicht, dass wir das dieses Schuljahr noch brauchen, aber trotzdem Danke :)
Übrigensich hab Shirrokos Verbesserungen übernommen und es klappt alles, danke nochmal :)
 
Back
Top Bottom