Array auf eine Zahl durchsuchen

V

ve987

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");
                    
            }
            }
        }
    }
}
 
H

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:
A

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.
 
A

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

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.
 
V

ve987

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

mihe7

Top Contributor
Da das alles zwar (mehr oder weniger) sinnvolle aber letztlich willkürlich definierte Systeme sind, würde ich einfach annehmen, dass es schlicht davon abhängig ist, auf welches man sich bezieht :)
 
A

abc66

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

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.
 
M

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.;)
 
A

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
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
HoloYoitsu Array´s in eine art Liste abspeichern? Java Basics - Anfänger-Themen 6
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
L Array mit Wörtern gestalten Java Basics - Anfänger-Themen 2
Gaudimagspam Nummern generieren Array Java Basics - Anfänger-Themen 4
Eule25 Methode mit Array Java Basics - Anfänger-Themen 4
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
J Array; Elemente kopieren Java Basics - Anfänger-Themen 17
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
P JSON-Array auf Excel-Spalten verteilen? Java Basics - Anfänger-Themen 5
V Array aus Klasse um vererbte Elemente erweitern Java Basics - Anfänger-Themen 3
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
T Array füllen Java Basics - Anfänger-Themen 11
S Auf Array aus Objekten zugreifen? Java Basics - Anfänger-Themen 1
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
A Speicherbereich von Array nicht zusammenhängend? Java Basics - Anfänger-Themen 8
S Java Array Probleme Java Basics - Anfänger-Themen 3
S Java Array Problem... Java Basics - Anfänger-Themen 2
C 2dimensionales array, Lagerverwaltung Java Basics - Anfänger-Themen 64
P Verschachtelte Array Liste Java Basics - Anfänger-Themen 2
P Performance Array und Liste Java Basics - Anfänger-Themen 13
M Array Summe bestimmen? Java Basics - Anfänger-Themen 14
parrot Array Übung Java Basics - Anfänger-Themen 25
parrot Array: Methode fügeHinzu Java Basics - Anfänger-Themen 13
parrot Array Java Basics - Anfänger-Themen 4
L 2 Dimensional Array werte überschreiben Java Basics - Anfänger-Themen 1
A char array wird überschrieben Java Basics - Anfänger-Themen 6
L Zufälliges 2d array befüllen Java Basics - Anfänger-Themen 27
L x und y Koordinaten in ein Array schreiben Java Basics - Anfänger-Themen 7
U Dreiecks-Matrix mit Array Java Basics - Anfänger-Themen 3
I Java zweidimensionales array befüllen mit for-schleife Java Basics - Anfänger-Themen 2
P Enums in Array abspeichern Java Basics - Anfänger-Themen 4
J Array Speicherplatz berechnen Java Basics - Anfänger-Themen 35
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
Z Methoden Array horizontal spiegeln Java Basics - Anfänger-Themen 19
K Array alle Werte aufsummieren und ausgeben Java Basics - Anfänger-Themen 6
J zweidimensionales Array Java Basics - Anfänger-Themen 1
A Array Elemente extrahieren ! Java Basics - Anfänger-Themen 4
M Quiz in Java programmieren mit Array Java Basics - Anfänger-Themen 8
A Array aufaddieren ! Java Basics - Anfänger-Themen 5
F Auto String mit Array Name aus Datei... oder so ähnlich Java Basics - Anfänger-Themen 4
H Ein gegebenes Int Array zu Zwei Arrays zurück geben Java Basics - Anfänger-Themen 6
J Elemente in einem 2D-Array summieren Java Basics - Anfänger-Themen 6
J String aus einem Array entfernen Java Basics - Anfänger-Themen 10
J Array differenzieren Java Basics - Anfänger-Themen 2
M Rekursive Prüfung ob ein Array sortiert ist... Java Basics - Anfänger-Themen 4
J Methoden set Methode array Java Basics - Anfänger-Themen 2
I Array übernimmt immer den letzten Input. Java Basics - Anfänger-Themen 14
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
Kirby_Sike Anzahl vorkommender Elemente im Array zählen Java Basics - Anfänger-Themen 9
A Array problem Java Basics - Anfänger-Themen 16
NeoLexx Variable für Array wird nicht korrekt übergeben Java Basics - Anfänger-Themen 45
F Integerzahl als Array halten Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Anzeige

Neue Themen


Oben