Hallo, habe ein Timer Code angehängt, das Problem ist, das Mein Timmer immer zum Stundenwechsel 1 Minute verschluckt. Bsp.: auf 02:01:01 folgt 01:59:59 müsste aber 02:00:59 heißen. Ich habe die selbe code reihenfolge wie für die sekunden, bei den sekunden funktioniert es aber. Weis jemand woran das liegt? Code ist im Anhang Vielen Dank
> auf > 02:01:01 folgt 01:59:59 > müsste aber 02:00:59 heißen. Leider ist beides falsch. Denke doch selbst mal besser nach...
Kai Burghart schrieb: > Weis jemand woran das liegt? Hier:
1 | Minute = Minute - 1 |
2 | If Minute = 0 Then |
3 | Minute = 59 |
4 | Stunde = Stunde - 1 |
5 | |
6 | End If |
Notfalls mal mit Papier und Bleistift den Sprung duchspielen. Sekunden haben dasselbe Problem.
ist doch klar du lässt es ja gar nicht zu das die Minute 0 werden darf. Minute = Minute - 1 If Minute = 0 Then Minute = 59 Stunde = Stunde - 1
1 | Minute = Minute - 1 |
2 | If Minute = 0 Then |
3 | Minute = 59 |
Überleg doch mal was hier passiert wenn wenn Minute==1 ist. Erst wird es um 1 dekrementiert, dann ist Minute==0 und dann schlägt das If zu und setzt es Minute=59. Wie wäre es mit
1 | If Minute = 0 Then |
2 | Minute = 59 |
3 | Else |
4 | Minute = Minute - 1 |
5 | End If |
Ja stimmt, 02:00:00 das heist, es werden jede Stunde eine Minute und jede Minte 1 Sekunde verschluckt. wie kann ich das dann jetzt richtig stellen?
Kai Burghart schrieb: > wie kann ich das dann jetzt richtig stellen? in dem du bei den ifs nicht auf 0 sondern auf -1 abfragst...
Hallo Uhr, ja so funktioniert es, aber ich verstehe die Logik dahinter nicht. Wäre dir dankbar wnn du mir das kurz erklären könntest, will ja auch was lernen und nicht nur abschreiben. Vielen Dank
Kai Burghart schrieb: > aber ich verstehe die Logik dahinter nicht. Die ist einfach: Beim Rückwärtszählen kommt nach 01 eben 00 und nicht 59. Du zählst auf 00 runter, aber überschreibst das 00 sofort mit 59. oder, mit dem "-1": auf einem runden Ziffernblatt sind 0 und 60 dasselbe, genau wie -1 und 59, -2 und 58 usw.
Kai Burghart schrieb: > Hallo Uhr, > > ja so funktioniert es, > > aber ich verstehe die Logik dahinter nicht. > > Wäre dir dankbar wnn du mir das kurz erklären könntest Nimm dir Papier und Bleistift. Auf deinem Papier malst du dir Kästchen rauf, die deine Variablen repräsentieren. Innerhalb der Kästchen stehen die Werte. Jetzt nimmst du besagte problematische Uhrzeit an und gehst deinen Code durch. Du spielst Computer(!) der das Programm abarbeitet. Aber mach nur genau das, was auch im Programmtext steht. Nicht mehr, nicht weniger. Wenn in deinem Programm eine Variable lesend bezug genommen wird, dann schaust du auf deinen Zettel, welcher Wert für diese Variable im Kästchen steht. Wenn in deinem Programm einer Variablen ein neuer Wert zugewiesen wird, dann machst du das, in dem du auf deinem Papier im richtigen Kästchen die bestehende Zahl ausradierst und statt dessen den ermittelten Wert reinschreibst. > , will ja auch was > lernen und nicht nur abschreiben. Genau so lernst du deine eigenen Programme zu analysieren: Indem du dein Programm selber durchgehst und nachsiehst, was da eigentlich wirklich passiert. Mit der Zeit werden deine Fähigkeiten besser werden und du brauchst Papier und Bleistift immer seltener.
@ Karl Heinz, vielen dank für deinen Tip, hat mir wirklich sehr geholfen und ich habe die Logik nun verstanden. Kann dir gar nicht sagen wie dankbar ich dir bin, es ist wirklich schön das geschriebene auch zu verstehen und mit eurer Hilfe so viel zu lernen. Vielen Vielen Dank auch an alle anderen die mich hier im Board sehr unterstützen. :-) Lg Kai
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.