Dies ist eine Übungsfrage aus Java Software Solutions: Grundlagen der Programmgestaltung von Lewis & Loftus, 4. Ausgabe; Frage PP2.6 (hier ist eine link)Java: Konvertierung einer Eingabe von Sekunden in Stunden/Minuten/Sekunden
Frage lautet wie folgt: "Erstellen Sie ein Projekt, das einen Wert repräsentiert eine Anzahl von Sekunden liest, drucken Sie dann die entsprechende Menge an Zeit als eine Kombination von Stunden, Minuten und Sekunden. (beispielsweise 9999 Sekunden entspricht bis 2 Stunden, 46 Minuten und 39 Sekunden).“
ich habe bisher versucht die folgende
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
double totalSecs, seconds, minutes, hours;
System.out.println("Enter number of seconds: ");
totalSecs = scan.nextInt();
hours = totalSecs/3600;
minutes = (Math.abs(Math.round(hours)-hours))*60;
seconds = (Math.abs(Math.round(minutes)-minutes))*60;
System.out.print(hours + "\n" + minutes + "\n" + seconds);
}
Antwort kam zu, Stunden: 2,7775 Minuten: 13,350000000000009 Sekunden: 21,00000000000051
Was will ich tun nehmen die Dezimalstellen von, sagen wir, Stunden und multiplizieren Sie sie mit 60 Minuten zu erhalten und den Prozess für Sekunden wiederholen. Ich habe jedoch Schwierigkeiten, es herauszufinden, daher die unordentliche Lösung von (Math.abs) etc.
Was würden Sie mir empfehlen, zu ändern/hinzufügen? Vielen Dank!
Hinweis: Dies ist ein Buch für Anfänger, daher habe ich nicht viel mehr Operationen gelernt als die, die ich bereits im Code angegeben habe. Als solche habe ich die Lösung für die früheren Male, die diese Frage gestellt wurde, nicht verstanden.
Danke, aber ich wollte versuchen, die Frage mit den Methoden zu lösen, die ich bereits kenne. Das SimpleDateFormat ist nichts, dem ich begegnet bin, aber danke, dass du es mir gezeigt hast! EDIT: Ihre Antwort bearbeiten ist mehr von dem, was ich gesucht habe, vielen Dank! – Newman
@ user2004685 Zuerst gibt Ihr Beispiel 04:46:39 als Ergebnis, ist es wahr? oder wegen Gebietsschema, Zeitzone usw.? –
@ YusufK. Ja, das liegt an der TimeZone. Sie müssen es auf 'GMT' einstellen. – user2004685