Schaltjahr

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich versuche zurzeit ein Programm zu schreiben, das bis auf eine kleinigkeit läuft. Wie kann ich 4 zahlen also z.B. 1904 einlesen aber nur die letzten 2 werte, an meine if schleife weiterleite. Das ich den wert sozusagen trennen kann. In dem Programm würde das Jahr 1904 nicht als schaltjahr erkannt, obwohl es eins ist. Ich bitte um eine einfach Lösung, bin noch Anfänger.
Vielen dank



public class Test {

public static void main(String[] args) {

int sj = Integer.parseInt(args[0]);


if ( (sj % 4) == 0 ) // - 4 (/10)

{
System.out.println (sj+"Es ist ein Schaltjahr");
}

}
 

Fu3L

Top Contributor
Da du den Wert sowieso als String erhältst würde ich eine Methode der Klasse String empfehlen:

int sj = Integer.parseInt(args[0].substring(1, 3));

Das müsste eigentlich den 3 und 4 Buchstaben zurückliefern (musst du mal genau testen, ob da einschließlich beginIndex und endIndex gilt)

Ich hoffe du denkst auch daran, dass 2100, 2200, 2300, 2500 usw. keine Schaltjahre sind? :wink:

Edit: So am Rande: Das Ding heißt nicht if-schleife, eine schleife is schon etwas anderes :wink:
 

Maeher

Bekanntes Mitglied
Anonymous hat gesagt.:
In dem Programm würde das Jahr 1904 nicht als schaltjahr erkannt, obwohl es eins ist.
Bei mir funktioniert es so wie es ist:
Code:
1904Es ist ein Schaltjahr
 
G

Gast

Gast
danke Fu3L, es hat geklappt. Aber das Programm ist so leider noch nicht fertig.


public class Test {

public static void main(String[] args) {


//int sj = Integer.parseInt(args[0]);



int sj = Integer.parseInt(args[0].substring(4));
int sj2 = Double.parseDouble(args[0].substring(1, 2, 3)); // hier zeigt er ein fehler, wegen der 3


if ( (sj % 4) == 0 && (sj2 % 100) == 0)
{
System.out.println (" ist ein Schaltjahr nach dem Gregorianischen Kalenders");
}
 

Maeher

Bekanntes Mitglied
Du solltest auch die 400-Jahres Regel nicht unterschlagen.
Bei mir sieht das so aus:
Code:
    public static void main(String[] args) {
        int sj = Integer.parseInt(args[0]);

        if ((sj % 4) == 0 && ((sj % 100) != 0 || (sj % 400) == 0)) {
            System.out.println(sj+" ist ein Schaltjahr nach dem Gregorianischen Kalenders");
        }
    }
(gibt z.B. 1900 nicht aus, aber 2000, das ja ein Schaltjahr war)
Wozu du den String auseinandernimmst habe ich nicht verstanden; die Funktion substring mit drei Argumenten findet sich auch nicht in der API.
 
G

Gast

Gast
ok danke sehr, sieht eigentlich garnicht so schwer aus. Bin ja noch am lernen ;)
 

Fu3L

Top Contributor
Maeher hat gesagt.:
Wozu du den String auseinandernimmst habe ich nicht verstanden;

Naja, er wollte wissen, wie er nur die letzten beiden Ziffern als Zahl erhält, das hab ich ihm beantwortet. Aber du hast recht, es klappt auch ohne das Abschneiden (direkt nach dem Aufstehen hab ich nich weiter drüber nachgedacht :wink: )
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Geburtstag im Schaltjahr berechnen Java Basics - Anfänger-Themen 24
Lion.King Schaltjahr berechnen Java Basics - Anfänger-Themen 31
J Schaltjahr Java Basics - Anfänger-Themen 6
Jamie logische Verknüpfung zur Schaltjahr-Berechnung Java Basics - Anfänger-Themen 30
Aemulit Java Schaltjahr berechnen Code Java Basics - Anfänger-Themen 7
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
Der Grütz Verständnisfrage zu Übung aus Java Kurs - Schaltjahr bestimmen Java Basics - Anfänger-Themen 2
R Schaltjahr problem Java Basics - Anfänger-Themen 10
Dawinartor Erste Schritte Schaltjahr berechnen Java Basics - Anfänger-Themen 1
S Compiler-Fehler Schaltjahr berechnen Java Basics - Anfänger-Themen 5
P Schaltjahr: "sauberer" Code Java Basics - Anfänger-Themen 4
C Schaltjahr Java Basics - Anfänger-Themen 4
T Wenn Schaltjahr ist, soll Februar, einen Tag mehr haben, GUI mit combobox Java Basics - Anfänger-Themen 4
B Schaltjahr überprüfen (Code) Java Basics - Anfänger-Themen 4
U Java Quellcode Schaltjahr Java Basics - Anfänger-Themen 13
W Schaltjahr abbrechen wenn <1583 Java Basics - Anfänger-Themen 11
W Schaltjahr Berechnung Java Basics - Anfänger-Themen 24
S schaltjahr (gelöst zu 90 %), allerdings folgeprob :/ Java Basics - Anfänger-Themen 18

Ähnliche Java Themen

Neue Themen


Oben