studyklar
GdI 2 · Übungsblatt 1 · Aufgabe 3

Minuten in Tage, Stunden und Minuten umrechnen

Wie viele Stunden und Tage sind 3030 Minuten? Das Programm braucht dafür nur zwei Rechenzeichen für ganze Zahlen: / für das Ganze und % für den Rest. Rechts steht das fertige Programm, die Zeilen zum aktuellen Schritt sind hervorgehoben. Mit Weiter geht es Schritt für Schritt voran.

Die Aufgabe

Aufgabe 3

Schreiben Sie ein Programm, das eine in Minuten angegebene Zeitdauer in Stunden und Minuten umrechnet, sowie in Tage, Stunden und Minuten. Gibt man beispielsweise in der Konsole den Wert 3030 ein, so soll die Ausgabe sein:

3030 Minuten sind 50 Stunden und 30 Minuten.
Das sind 2 Tage, 2 Stunden und 30 Minuten.

Verwenden Sie Konstanten für die Zahl von Minuten in einer Stunde sowie für die Zahl von Stunden in einem Tag.

Eine Dauer in Minuten soll zweimal anders geschrieben werden: einmal als Stunden und Minuten, einmal als Tage, Stunden und Minuten. Eine Konstante ist eine Variable, deren Wert nach dem ersten Zuweisen nicht mehr geändert werden darf. Hier sind das 60 (Minuten pro Stunde) und 24 (Stunden pro Tag).

Merke: Umrechnen in größere Einheiten heißt bei ganzen Zahlen immer: / gibt die Anzahl der ganzen großen Einheiten, % gibt, was in der kleinen Einheit übrig bleibt.
  1. Konstanten anlegen.
  2. Gesamtminuten einlesen.
  3. In Stunden und Minuten zerlegen.
  4. Die Stunden in Tage und Stunden zerlegen.
  5. Beide Sätze ausgeben.

Konstanten für 60 und 24

        final int MINUTEN_PRO_STUNDE = 60;        final int STUNDEN_PRO_TAG = 24;

Das Wort final vor einer Variablen macht sie zur Konstanten: Ein späteres MINUTEN_PRO_STUNDE = 61; meldet Java als Fehler. Konstanten schreibt man in Großbuchstaben, Wörter durch Unterstrich getrennt.

Warum nicht einfach 60 hinschreiben? Ein Name sagt, was die Zahl bedeutet. Und kommt sie mehrmals vor, ändert man sie an einer einzigen Stelle.

Die Gesamtminuten einlesen

        Scanner scanner = new Scanner(System.in);        System.out.print("Zeitdauer in Minuten: ");        int gesamtminuten = scanner.nextInt();

Die Dauer kommt als ganze Zahl, also int und nextInt(). Als Beispiel nehmen wir die 3030 aus der Aufgabe.

Aus Aufgabe 1 („Lohnrechner“): Der Import holt den Scanner aus dem Paket java.util. Das Programm läuft in der Methode main von oben nach unten. Erst mit System.out.print fragen, dann mit dem Scanner einlesen.
Aus Aufgabe 2 („Minimum dreier Zahlen mit Math.min“): nextInt() liest nur ganze Zahlen. Eine Eingabe mit Komma bricht das Programm ab.
Noch 5 Schritte bis zum Ergebnis
Den ganzen Lösungsweg sehen Studierende und Lehrende der HS KL. Registriere dich mit deiner Adresse @stud.hs-kl.de oder @hs-kl.de, dann geht es hier direkt weiter.

Das Programm MinutenUmrechnen

mit / und %

Abbildung 1Das Programm MinutenUmrechnen

mit / und %

import java.util.Scanner; public class MinutenUmrechnen {     public static void main(String[] args) {        final int MINUTEN_PRO_STUNDE = 60;        final int STUNDEN_PRO_TAG = 24;         Scanner scanner = new Scanner(System.in);        System.out.print("Zeitdauer in Minuten: ");        int gesamtminuten = scanner.nextInt();         int gesamtstunden = gesamtminuten / MINUTEN_PRO_STUNDE;        int minuten = gesamtminuten % MINUTEN_PRO_STUNDE;         int tage = gesamtstunden / STUNDEN_PRO_TAG;        int stunden = gesamtstunden % STUNDEN_PRO_TAG;         System.out.println(gesamtminuten + " Minuten sind " + gesamtstunden                + " Stunden und " + minuten + " Minuten.");        System.out.println("Das sind " + tage + " Tage, " + stunden                + " Stunden und " + minuten + " Minuten.");    }}
LegendeDas ganze Programm.