Array auf eine Zahl durchsuchen

V

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

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

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 :)
 
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
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
S Erklärung zur Methode und array Java Basics - Anfänger-Themen 4
S Primzahlen in Array ausgeben Java Basics - Anfänger-Themen 14
M Hilfe - Array Aufgabe Java Basics - Anfänger-Themen 8
C Matrix mit Array ausgeben Java Basics - Anfänger-Themen 6
L Methode Point[], Array widergeben Java Basics - Anfänger-Themen 5
M Array - Übung Java Basics - Anfänger-Themen 3
districon 2D Array - Länge zuweisen Java Basics - Anfänger-Themen 1
N Wozu nutzt man in der Main Methode das args Array? Java Basics - Anfänger-Themen 10
districon 2D Array - Zeilen und Spalten durchsuchen Java Basics - Anfänger-Themen 3
Hamudi Bachir 2D Array eingabe vom Benutzer Java Basics - Anfänger-Themen 31
M Array auf Primzahlen prüfen Java Basics - Anfänger-Themen 7
sashady 2D-Array mit Zahlenmuster füllen Java Basics - Anfänger-Themen 4
t2im Java Array-Länge ändern? Java Basics - Anfänger-Themen 22
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
K Rekursion: Rechenmauer mit Array erstellen Java Basics - Anfänger-Themen 17
G ImageIcon in Byte-Array ablegen Java Basics - Anfänger-Themen 7
sashady ursprüngliche Array-Werte bei erneutem Aufruf? Java Basics - Anfänger-Themen 7
A Array Ansprache einer Zelle über Punktnotation? Java Basics - Anfänger-Themen 3
A Array einlesen und ausgeben Java Basics - Anfänger-Themen 13
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
moiss002 Umgebungsvariable Kein Zugriff auf ein Array Java Basics - Anfänger-Themen 7
B Häufigkeit einzelner Zahlen in einem Array Java Basics - Anfänger-Themen 6
KogoroMori21 Textdatei einlesen im Array (Selection Sort Algorithmus) Java Basics - Anfänger-Themen 3
nonickatall Input/Output Zeichenkette in Array zerlegen Java Basics - Anfänger-Themen 2
E In Array Werte einfügen? Java Basics - Anfänger-Themen 5
S Wort einlesen Array ausgeben Java Basics - Anfänger-Themen 4
HighLife Bestimmte Werte aus Array zählen Java Basics - Anfänger-Themen 15
OZAN86 Mehrdimensionales Array Java Basics - Anfänger-Themen 4
Yasemin bahar zweidimensionales Array Java Basics - Anfänger-Themen 5
Zeppi Vergleich von Array-Inhalten Java Basics - Anfänger-Themen 14
H Eingegebene Zahlen mit Array ausgeben Java Basics - Anfänger-Themen 18
L ArrayList<String> --> double[] array Java Basics - Anfänger-Themen 18
javaluke Erste Schritte Array nach Datentyp sortieren Java Basics - Anfänger-Themen 16
D Zufällige Auswahl aus einem angelegten Array? Java Basics - Anfänger-Themen 10
Zeppi OOP Array in Objekten Java Basics - Anfänger-Themen 4
K Wie kontrolliere ich ob ich die Zahl in meinem Array schon hab? Java Basics - Anfänger-Themen 9
O 2d Array einmal Eins Java Basics - Anfänger-Themen 2
B Array bei jeder Eingabe um eins erweitern Java Basics - Anfänger-Themen 3
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
R Array mit Unter- und Obergrenze ganze Zahlen dazwischen erscheinen nicht Java Basics - Anfänger-Themen 1
T Methode schreiben, die einem Array ein Stringelement hinzufügt, wenn dieses noch nicht enthalten ist. Java Basics - Anfänger-Themen 6
J null exception Array Java Basics - Anfänger-Themen 5
H Array Elemente Java Basics - Anfänger-Themen 17
J Array Actionlistener Java Basics - Anfänger-Themen 9
H Gesamtabweichung mit Array berechnen Java Basics - Anfänger-Themen 2
T Methode um Array mit for-each-Schleife auszulesen Java Basics - Anfänger-Themen 7
T Elemente aus Array zu TableView JavaFX übertragen Java Basics - Anfänger-Themen 2
I Array in umgekehrter Reihenfolge - Erklärung - Java Basics - Anfänger-Themen 3
T Zahl in Array ersetzen Java Basics - Anfänger-Themen 2
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
I Letztes, erstes Element vom Array Java Basics - Anfänger-Themen 9
J Array an Combobox übergeben Java Basics - Anfänger-Themen 5
D Doppelte For Schleife / Array Java Basics - Anfänger-Themen 3
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
H Minimum in einem Array bestimmen Java Basics - Anfänger-Themen 7
A Einmaleins 2D Array Java Basics - Anfänger-Themen 1

Ähnliche Java Themen


Oben