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.
Grüzi, bin noch recht neu was den Umgang mit programmieren angeht.
Ich schreibe gerade ein Programm, mit dem ich die aktuelle Zeit ausgeben soll, das ganze in 3 verschiedenen Zeitzonen. Das ganze nur mit Hilfe des folgendem Befehls (hier mal der ganze Anfang):
Java:
public class Uhrzeit {
public static void main(String[] args) {
long t = java.lang.System.currentTimeMillis();
Welche Zeitzone ausgegeben werden soll, habe ich durch einfache IF Abfragen geregelt:
Java:
if(args[0].equals("0"))
Ich soll das Programm mit "java Uhrzeit 0" oder halt 1 oder 2 ausführen, wobei dann halt eine andere Zeitzone ausgegeben wird.
Das Problem:
Wenn man keine Zahl hinter "Uhrzeit" einfügt, soll angenommen werden, dass "java Uhrzeit 0" gemeint ist. Lasse ich die Zahl aber weg, bekomme ich einen Error da es keine gültige Array Eingabe ist (ArrayIndexOutOfBounds).
Wie kann ich das lösen, dass er auch bei keiner Zahl hinter "Uhrzeit" mir die Uhrzeit für Zeitzone "0" ausgibt?
Der Array [0] ist ja von Anfang an auf 0 gesetzt. Durch die Eingabe in der Kommandozeile weise ich ihm ja den Wert 0, 1 oder 2 zu. Könnte ich mit einem Befehl nicht den Wert nach "java Uhrzeit" lesen und dann mit If-Abfragen weiterarbeiten?
Ich kann noch nicht ganz viel mit anfangen. Habe rumprobiert aber es hat nicht geklappt.
Also es ist das selbe Problem wie oben geschildert.
Ein Programm das die Uhrzeit ausgeben soll in verschiedenen Zeitzonen.
Wenn man in der Konsole: java Uhrzeit 0 oder 1 oder 2 eingibt.
das Problem ist das wenn nur: Java Uhrzeit eingegeben wird ein error kommt.
Das soll aber nicht passieren sondern er soll bei keiner Eingabe einer Zahl automatisch 0 nehmen.
das ist bis jetzt mein Programm das auch bis auf das Problem Funktioniert:
public class Uhrzeit {
public static void main(String[] args) {
int z = Integer.parseInt(args[0]);
long t = java.lang.System.currentTimeMillis();
long sek = (t / 1000) % 60;
long min = (t / 60000) % 60;
long std = ((t / 3600000) +z) % 24;
switch (Integer.parseInt(args[0])) {
case 0:
System.out.println("Es ist jetzt "+std+":"+min+" Uhr und "+sek+" Sekunden (UTC).");
break;
case 1:
System.out.println("Es ist jetzt "+std+":"+min+" Uhr und "+sek+" Sekunden (MEZ).");
break;
case 2:
System.out.println("Es ist jetzt "+std+":"+min+" Uhr und "+sek+" Sekunden (MESZ).");
break;
default:
System.out.println("Ungueltige Eingabe. Waehlen sie zwischen 0,1 und 2!");
}
}
}
Ich habe deinen Vorschlag ausprobiert und es nicht hinbekommen, dass das Programm umgewandelt wird. kammen zuerst Fehler die ich beheben konnte aber im Nachhinein hat er es umgewandelt in die class dennoch kam es zu diesem hier: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Uhrzeit.main(Uhrzeit.java:14)
Mit Raten hat es auch wenig zu tun. Ich war in etwas in eile und konnte mich nicht dementsprechend ausdrücken.
Das tut mir leid.
Ich glaub ich bin zu doof dafür >_<
Der sagt immer noch: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Uhrzeit.main(Uhrzeit.java:21)
public static void main(String[] args) {
int z = args.length == 0 ? 0 : Integer.parseInt(args[0]);
long t = java.lang.System.currentTimeMillis();
long sek = (t / 1000) % 60;
long min = (t / 60000) % 60;
long std = ((t / 3600000) +z) % 24;
Im Übrigen
- wird dir damit "at Uhrzeit.main(Uhrzeit.java:21)" der Fehler in Zeile 21 angezeigt.
die hättest du dann auch mit posten müssen.
- gibt es für "Danke" oder dgl. auch einen Button, der gerne benutzt werden darf.