Wie kann ich Zeit (in Sekunden) Unterteilen?
Halli hallo,
Ich habe einen Timer der bei 60 Sekunden nicht auf eine Minute überspringt. Ich möchte, dass der int "time" (in Sekunden) so umformiert wird (ohne "time" zu ändern), dass es den int "sekunden", den int "minuten" und den int "stunden" gibt. Am ende möchte ich eine Anzeige: z.B. 2:13:41 (HH:MM:SS). Die soll aber keine integer angeben, die es nicht gibt. Also sieht es bei 13 Minuten so aus "13:00" und nicht "00:13:00".
Kurz gesagt ich möchte eine Sekunden anzeige unterteilen.
Danke im vorraus :D
2 Antworten
Hey,
also zuerst zählst Du deine Sekunden einfach hoch. Und zwar von 0 bis unendlich.
Und dann rechnest Du modulo 60.
Dann ergibt sich:
"Sekunden auf deiner Anzeige" = "Sekundenzähler gesamt" % 60
"Minuten auf deiner Anzeige" = "Sekundenzähler gesamt" / 60 hier nutzt Du die ganzzahlige Division
Nach dem Schritt hast Du eine Ausgabe nach Minuten und Sekunden. Du siehst, dass nun die Minuten über 60 hinaus gehen. Aber auch dort kannst Du wieder modulo rechnen um die Minuten auf 60 zu begrenzen und halt die Stundenzahl zu bekommen. Bei den Stunden rechnest Du dann modulo 24 und die Division gibt dir die Tage.
Gruß und viel Spaß
Nun, normale Menschen würden einfach ne time Klasse benutzen welche alle gängigen Programmiersprachen mitliefern.
Sonst kannst du auch einfach die Sekunden zählen und bei der ausgabe die Zahl durch 3600 und 60 für die Stunden und Minuten, und dann %60 für die Sekunden.