Wie kriege ich Sekunden richtig in Minuten(JavaScript)?


14.10.2021, 18:59

Eine Erklärung dazu wäre noch nett, nicht nur bloß was zu ändern ist, Danke!

4 Antworten

Die sauberste Sache ist Java die Rechnerei mache zu lassen.

Java hat eine wunderbare Klasse für derartige Aufgaben : https://docs.oracle.com/javase/8/docs/api/java/time/LocalTime.html

So sähe der Aufruf aus:

import java.time.LocalTime;

public class Main {
   public static void main(String[] args) {
      int seconds=359;
      LocalTime time = LocalTime.ofSecondOfDay(seconds);
      System.out.println(time);

   }
}

Mathematisch:

public class Main {
   public static void main(String[] args) {
      int seconds=320;
      
        // kassisce Mathematik  (Rundung erfolgt  bei der Stringformatierung %d automatisch)
        // SekundenStelle:  seconds % 60 =>  sekunden  modulo 60
        // Minutenstelle ohne Stunden:  seconds / 60 => Sekunden  dividiert durch 60
      String myMinsSecStr=String.format("%d:%02d",  seconds  / 60, seconds % 60);
      System.out.println("Minuten:Sekunden = " + myMinsSecStr);
        //Minutenstelle mit Stunden:  (seconds %% 3600) / 60 => (Sekunden modulo 3600)  dividiert durch 60
        //Stundenstelle:  seconds / 3600 => Sekunden  dividiert durch 3600
      String myHrMinsSecStr=String.format("%d:%02d:%02d",  seconds / 3600, (seconds % 3600) / 60, seconds % 60);
      System.out.println("Stunden:Minuten:Sekunden = " + myHrMinsSecStr);
   }
}

Minuten-Anzahl: seconds / 60

Anzahl restlicher Sekunden: seconds % 60

Also muss in deiner Funktion stehen:

return seconds/60 + " : " + seconds%60;
Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf
LordMidoryan 
Fragesteller
 14.10.2021, 20:49

Was genau bewirken die & 60? Also wie kann ich das für z.B. andere Programme interpretieren?

0
BeamerBen  14.10.2021, 22:48
@LordMidoryan

% ist der Remainder Operator. So wie man früher in der Schule gerechnet hat quasi.

Also die Grundschulerklärung: 5 % 3 wäre 2, weil die 3 ein mal in 5 "passt" und 2 übrig bleiben.

Hört sich zwar erst mal nutzlos an ist aber tatsächlich erstaunlich oft nützlich.

2
LordMidoryan 
Fragesteller
 18.10.2021, 15:20
@BeamerBen

Kurz und knapp und vor allem verständlich erklärt, danke dir @BeamerBen!

0
  1. Es ist kein JavaScript, sondern Java, riesen Unterschied
  2. In der Programmierung rechnet man in Millisekunden (MS). 1 Sekunde = 1000 Millisekunden. 1 Min = 1000*60 und 5 Minuten 1000*60*5
MagisterSamael  14.10.2021, 19:05

Generell korrekt, dennoch würde ich eventuell den Unterschied zwischen Int und Float erklären.

Es bringt dem Fragesteller nichts in Zukünftigen Projekten, wenn er aus einer Division eine Dezimalzahl erhalten und/oder verarbeiten möchte.

0
LordMidoryan 
Fragesteller
 14.10.2021, 19:08

Ist Millisekunde bereits in Java definiert oder muss ich das erst selbst festlegen?

0
FaTech  14.10.2021, 19:10
@LordMidoryan

Jeder Timer in Java sollte damit arbeiten. Millisekunden sind integer. Integer kurz int ist eine ganz Zahl. Wenn du kommszahlen herausbekommen möchtest, musst du mit float oder Double arbeiten

0
  1. Das ist Java, nicht JavaScript.
  2. Da wird nicht aufgerundet. Wenn überhaupt dann wäre es abgerundet, aber nichtmal das ist hier der Fall.
  3. Ist es nicht im geringsten überaschend, dass nur die 5 Minuten angezeigt werden, denn Secondstoshowtime macht nichts anderes als die Anzahl der ganzen Minuten innerhalb der mit dem Parameter seconds in Sekunden gegebenen Zeitspanne zurückzugeben.

Die gesuchte Berechnung läuft eher so:

seconds=320
_minutes=floor(seconds/60)
_seconds-=minutes*60
print(seconds," Sekunden entsprechen ",_minutes," Minuten und ",_seconds," Sekunden.")

Jetzt mach noch Java-Code draus, dann hast du's.