Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich bin Java-Anfängerin und möchte zur Übung ein Programm schreiben, dem ich die Minutenanzahl übergebe und das dann diese Minutenanzahl in Tage, Stunden und Minuten umrechnet und ausgibt.
Zuerst hab ichs mal ganz einfach mit nur einer main-Methode gemacht:
Code:
public class Zeitumrechnung {
public static int d = 0;
public static int h = 0;
public static int min = 0;
public static int h_neu = 0;
public static void main(String[] args) {
int x = Integer.parseInt(args[0]);
min = x % 60;
h = (x - min) / 60;
if (h > 24) {
h_neu = h % 24;
d = (h - h_neu) / 24;
}
System.out.println(d+" Tage "+h_neu+" Stiunden "+min+" Minuten");
}
}
Das funktioniert.
Jetzt möcht ichs aber gerne auch noch einmal "eleganter" machen mit einer Methode zur Berechnung und einer Methode zur Über-& Ausgabe.
Da sieht mein Code folgendermaßen aus:
Code:
public class Zeitumrechnung2 {
public static int d = 0;
public static int h = 0;
public static int min = 0;
public static int h_neu = 0;
public static int[] ausgabe = {d, h_neu, min};
public static int[] ausrechnen(int x) {
min = x % 60;
h = (x - min) / 60;
if (h > 24) {
h_neu = h % 24;
d = (h - h_neu) / 24;
}
return ausgabe;
}
public static void main(String[] args) {
int x = Integer.parseInt(args[0]);
System.out.println(ausrechnen(x));
}
}
Übersetzen lässt sich das ganze fehlerfrei, aber wenn ich es ausführe, dann gibt es folgendes aus:
[I@10b62c9
Ist das ASCII-Code??? Warum??
Was muss ich in meinem Code ändern, damit die Ausgabe in arabischen Ziffern erfolgt?
import java.util.Arrays;
public class Zeitangabe2 {
public static int d = 0;
public static int h = 0;
public static int min = 0;
public static int h_neu = 0;
public static int[] ausgabe = new int[3];
public static int[] ausrechnen(int x) {
min = x % 60;
h = (x - min) / 60;
if (h > 24) {
h_neu = h % 24;
d = (h - h_neu) / 24;
}
ausgabe[0] = d;
ausgabe[1] = h_neu;
ausgabe[2] = min;
return ausgabe;
}
public static void main(String[] args) {
int x = Integer.parseInt(args[0]);
System.out.println(Arrays.toString(ausrechnen(x)));
}
}
Jetzt wird mir ja, wenn ich z.B. 5000 als Argument übergebe: [3 11 20] ausgegeben
Was muss ich schreiben, wenn ich nun die Felder einzeln ausgeben möchte?
Wenn ich nämlich schreibe:
Code:
System.out.println(ausgabe[0]+" Tage "+ausgabe[1]+" Stunden "+ausgabe[2]+" Minuten");
Dann übernimmt das Programm ja nur die ganz oben initialisierten Variablenwerte und gibt aus:
0 Tage 0 Stunden 0 Minuten
Was muss ich schreiben, damit die Felder einzeln ausgegeben werden?
Code:
System.out.println(???[0]+" Tage "+???[1]+" Stunden "+???[2]+" Minuten");
und deine Methode ausrechnen() braucht eigentlich überhaupt keine statischen Variablen,
das Array musst du eh erzeugen, das andere können auch lokale Variablen sein