Array auf eine Zahl durchsuchen

ve987

Aktives Mitglied
Hallo zusammen,

ich gebe einer Methode zwei int Parameter: Jahr und Monat.
Die Methode soll zurückgeben, ob das angegebene Jahr ein Schaltjahr ist oder nicht (Schaltjahre: 2020, 2024, 2028...).
Ich habe es versucht, die Schaltjahre in einem Array zu speichern und mit If abzufragen.

Nun funktioniert aber die If - Abfrage nicht richtig.
Ausgegeben werden beide Optionen, mit 28 und mit 29 Tage.

Kann mir bitte jemand helfen, wo das Problem ist?

Vielen Dank im Voraus für die Hilfe :)


Code:
public class Test3 {

    public static void main(String[] args) {

        gibInfo(2020, 2); //jahr, monat
    }

    public static void gibInfo(int jahr, int monat) {
        int januar = 31;
        int februar = 28;

        switch (monat) {
        case 1:
            System.out.println("Im Jahr " + jahr + " Monat Januar " + " hat " + januar + " Tage");
            break;
        case 2:
            int schaltjahr = 0;
            int[] schaltjahre = new int[3000];

            for (int i = schaltjahr; i < schaltjahre.length; i++, schaltjahr = schaltjahr + 4) {

                schaltjahre[i] = schaltjahr;

                if (schaltjahre[i] == jahr) {
                    System.out.println("Im Schaltjahr " + jahr + " hat Februar 29 Tage");
                    System.exit(0);
                }
                    else {
                    System.out.println("Im Jahr " + jahr + " hat Februar " + februar +  " Tage");
                    
            }
            }
        }
    }
}
 

httpdigest

Top Contributor
Es gibt relativ einfache Regeln, welches Jahr ein Schaltjahr ist (es ist nicht einfach jedes vierte Jahr!).
Und hierfür ein Array anzulegen, ist völlig unnötig.
EDIT: Du würdest ja auch nicht mit folgender Methode testen, ob eine angegebene Zahl gerade ist:
Java:
public static boolean istZahlGerade(int zahl) {
  int[] arr = new int[1000000];
  for (int i = 0, gerade = 0; i < arr.length; i++, gerade += 2) {
    arr[i] = gerade;
    if (zahl == arr[i])
      return true;
  }
  return false;
}
 
Zuletzt bearbeitet:

abc66

Top Contributor
Vereinfacht steht dort, ein leap year ist, wenn es a) durch 400 teilbar ist oder wenn es b) durch 4, jedoch c) nicht durch 100 teilbar ist.
a v (b ^ c).
Ob das jedoch für alle Jahre gilt (z. B. -24) weiß ich nicht.
 

abc66

Top Contributor
Einfaches "Abzählen" klappt nicht...
Java:
static boolean tripleCheck(int year) {
	int i = -4000;
	while (i < year) {
		i += 4;
	}
	return ((i == year) == Year.isLeap(year))
			&& ((year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) == Year.isLeap(year));
}

public static void main(String[] args) {
	for (int i = -4000; i < 3000; i++) {
		System.out.println(i + " " + tripleCheck(i));
		if (!tripleCheck(i)) {
			break;
		}
	}
	System.out.println(Year.isLeap(-3900));
	System.out.println(-3900 % 400 == 0 || (-3900 % 4 == 0 && -3900 % 100 != 0));
}
 

temi

Top Contributor
Vereinfacht steht dort, ein leap year ist, wenn es a) durch 400 teilbar ist oder wenn es b) durch 4, jedoch c) nicht durch 100 teilbar ist.
a v (b ^ c).
Ob das jedoch für alle Jahre gilt (z. B. -24) weiß ich nicht.

Wikipedia sagt dazu:
Der bis 1582 übliche Julianische Kalender fügt genau alle vier Jahre einen Schalttag ein. Dann hat der Februar 29 statt 28 Tage und das Jahr 366 statt 365 Tage. Im gregorianischen Kalender entfallen in 400 Jahren drei dieser Schalttage.
 

ve987

Aktives Mitglied
Vielen Dank an Alle!
Ich sehe schon, dass ich für meine eigentliche Frage ein falsches Beispiel mit Schaltjahr genommen habe, bin noch Anfänger ;)

Ich hatte das Problem mit der If Abfrage.

Abgesehen vom Beispiel Schaltjahr, habe ich die eine Ausgabe außerhalb der Klammer gesetzt und es funktioniert :D

Code:
public class Test3 {

    public static void main(String[] args) {

        gibInfo(2028, 2);
    }

    public static void gibInfo(int jahr, int monat) {
        int januar = 31;
        int februar = 28;

        switch (monat) {
        case 1:
            System.out.println("Im Jahr " + jahr + " Monat Januar " + " hat " + januar + " Tage");
            break;
        case 2:
            int schaltjahr = 0;
            int[] schaltjahre = new int[3000];

            for (int i = schaltjahr; i < schaltjahre.length; i++, schaltjahr = schaltjahr + 4) {

                schaltjahre[i] = schaltjahr;

                if (jahr == schaltjahre[i]) {
                    System.out.println("Im Schaltjahr " + jahr + " hat Februar 29 Tage");
                    System.exit(0);
                }
            }
            System.out.println("Im Jahr " + jahr + " hat Februar " + februar + " Tage");
        }
    }
}
 

mihe7

Top Contributor
ein Historiker muss doch genau wissen oder angeben können, vor wie viel Tagen beispielsweise der Vesuv ausgebrochen ist...
Definiere Tag.

Wenn Du Kalendertage meinst: aktuell ist der gregorianische Kalender dem julianischen um 13 Tage voraus, heute wäre also nicht der 15.02. sondern der 02.02.2020. Wir bewegen uns also mit dem 02.02.2020 im System des julianischen Kalenders und damit kann man die Anzahl der Tage zu einem beliebigen julianischen Datum doch relativ einfach ausrechnen.
 

Meniskusschaden

Top Contributor
@temi und @mihe7 , ein Historiker muss doch genau wissen oder angeben können, vor wie viel Tagen beispielsweise der Vesuv ausgebrochen ist...
Na ja, ich glaube es interessiert den Historiker nicht so sehr, ob der Vesuv-Ausbruch, der zum Untergang von Pompeji geführt hat, vor ungefähr 708800 Tagen war, sondern eher der relative zeitliche Bezug zu anderen Ereignissen dieser Epoche. Da bietet sich dann doch das jeweils passende Kalendarium an.;)
Am besten rechnet man sowieso immer alles in Star-Trek-Sternzeit um.;)
 

abc66

Top Contributor
Ja, dass die Russen einen eigenen Kalender hatten, war mir bekannt. Zwischen dem 1. und dem 13. Februar 1918 verschwanden einfach 13 Tage. Danach folgte direkt der 14. Februar. Aber das beantwortet ja meine Frage noch nicht, wie man die Tage seit dem Vesuv-Ausbruch und den Untergang Pompejis korrekt berechnet.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Wie lege ich eine durch Random ausgesuchte Zahl in ein Array? Java Basics - Anfänger-Themen 3
N in int array einen pattern(eine zahl) finden Java Basics - Anfänger-Themen 21
T Testen ob eine Zahl im array doppel vorkommt. Java Basics - Anfänger-Themen 7
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
O zweidimensionales array in eine csv-Datei Java Basics - Anfänger-Themen 1
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
B Von Array nur eine bestimmte Anzahl bekommen Java Basics - Anfänger-Themen 3
V Erste Schritte Eine Array-Variable mit Benutzereingaben befüllen Java Basics - Anfänger-Themen 3
O Ziehen im Array um einen Schritt in eine einzige beliebige Richtung Java Basics - Anfänger-Themen 5
S Switch-Case für eine Array-Zuordnung Java Basics - Anfänger-Themen 5
T Schauen ob eine Ziffer in einem String-Array häufiger vorkommt Java Basics - Anfänger-Themen 8
N Anfang eine Array Schleife finden Java Basics - Anfänger-Themen 18
M 2 Stellen in einem Array vergleichen und bei übereinstimmen eine davon ersetzen Java Basics - Anfänger-Themen 1
M Eine Frage zu Array Java Basics - Anfänger-Themen 6
C eine diagonale von rechts nach links im 2d-array Java Basics - Anfänger-Themen 1
K Variablen Ist es möglich eine ArrayList vom Typ Array zu erstellen? Java Basics - Anfänger-Themen 2
stylegangsta Input/Output Hat eclipse eine Macke oder mein Code Array Datei einlesen Java Basics - Anfänger-Themen 5
F Teil eines Byte Array an eine Methode übergeben Java Basics - Anfänger-Themen 5
G Klassen Array durch eine Klasse aufrufen Java Basics - Anfänger-Themen 4
J Variablen Array aus anderer Klasse auslesen-Wie verhindert man eine NullPointerException? Java Basics - Anfänger-Themen 4
D Eine Stelle eines Char- Arrays nach dem vorkommen in einem ganzem anderem Array überprüfen Java Basics - Anfänger-Themen 20
M eine 1 von einem 2d Array subtrahieren Java Basics - Anfänger-Themen 11
M Methoden Daten aus einer SQL-Abfrage in eine mehrdimensionales Array einlesen Java Basics - Anfänger-Themen 7
F Klassen DataBuffer - Methode um Array in eine Bank zu schreiben Java Basics - Anfänger-Themen 3
K Erste Schritte Array mit 3 werte in eine Zeile -- Hilfe! Java Basics - Anfänger-Themen 2
Beckenbauer OOP Durch Komma getrennte Einträge in einem String in ein Array oder eine Tabelle schreiben Java Basics - Anfänger-Themen 4
N ein Array auf eine JTextArea ausgeben Java Basics - Anfänger-Themen 2
R JButtons in eine Array legen GUI Java Basics - Anfänger-Themen 5
Z Array mit daten einer datenbankbefüllen und dies an eine tabelle geben Java Basics - Anfänger-Themen 6
J Zugriff auf ein Array über eine andere Klasse Java Basics - Anfänger-Themen 7
H Array + StringBuilder in eine Textdatei speichern.laden. Java Basics - Anfänger-Themen 7
E Enumeration eine Art Array? Java Basics - Anfänger-Themen 4
G string Array in eine Vector packen Java Basics - Anfänger-Themen 10
P wie bekomme ich ein array in eine string variable Java Basics - Anfänger-Themen 11
B String zu eine zwei dimensionales Array Java Basics - Anfänger-Themen 6
M Array - eine Variable auslesen Java Basics - Anfänger-Themen 4
N Array leert sich beim schrieben in eine Datei selbstständig Java Basics - Anfänger-Themen 2
M Allgemein Array in eine ArrayList überführen? Java Basics - Anfänger-Themen 7
G in eine 2-dimensionale Array eintragen? Java Basics - Anfänger-Themen 10
P Eine Datei einlesen und in einem Array speichern Java Basics - Anfänger-Themen 11
C Inhalt aus einer Array in eine andere Array kopieren Java Basics - Anfänger-Themen 2
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
O 2 Dimensionales Array Java Basics - Anfänger-Themen 6
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
javaBoon86 Array mehrere Dimensionen Java Basics - Anfänger-Themen 10
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben