Warum funktioniert mein Schaltjahr-Algorithmus nicht (Java)? [Duplikat

Diese Frage hat hier bereits eine Antwort:

Java Code zur Berechnung des Schaltjahres 21 answers

Hier ist was ich habe:

Scanner input = new Scanner(System.in);
    System.out.print("Enter a year: ");
    int Year = input.nextInt();
    System.out.print("Enter a month (first three letters with the first"
            + " letter uppercase): ");
    String Month = input.next();

    String ThirtyOne = "Jan" + "Mar" + "May" + "Jul" + "Aug" + "Oct" + "Dec";
    String DaysThirtyOne = ThirtyOne.substring(21) + "31";

    String Thirty = "Apr" + "Jun" + "Sep" + "Nov";
    String DaysThirty = Thirty.substring(12) + "30";

    String TwentyEight = "Feb";
    String DaysTwentyEight = TwentyEight.substring(3) + "28";
    String DaysLeapYear = TwentyEight.substring(3) + "29";


    boolean isLeapYear = ((Year % 4 == 0) && (Year % 100 != 0) && (Year % 400 == 0));

    if (ThirtyOne.contains(Month)) {
        System.out.println(Month + " " + Year + " has " + DaysThirtyOne 
                + " days in it.");
    }
    if (Thirty.contains(Month)) {
        System.out.println(Month + " " + Year + " has " + DaysThirty 
                + " days in it.");
    }
    if(TwentyEight.contains(Month)) {
        System.out.println(Month + " " + Year + " has " + DaysTwentyEight 
                + " days in it.");
    }
    if (isLeapYear) {
        System.out.println(Month + " " + Year + " has " + DaysLeapYear 
                + " days in it.");
    }

Ich bin neu in der Programmierung, daher würde ich mich nicht wundern, wenn dieser Code unausgereift aussieht. Jedenfalls muss der Benutzer ein Jahr und einen Monat eingeben (die ersten drei Buchstaben). Ich habe eine boolesche Variable für ein Schaltjahr erstellt, die angibt, in welchem Jahr die Benutzereingaben durch 4, 100 und 400 teilbar sein müssen. Dann habe ich eine if-Anweisung erstellt, um "Feb" (in welchem Jahr auch immer) als Schaltjahr auszugeben die Benutzereingaben) enthält DaysLeapYear. " Ich glaube, mit meinem Algorithmus stimmt etwas nicht, denn wenn ich die if-Anweisung von TwentyEight herausnehme und nur die Schaltjahr-if-Anweisungen behalte, gibt der Computer nicht einmal aus, wie viele Tage der Februar hätte, wenn es ein Schaltjahr wäre . Auch hier denke ich, dass ich beim Algorithmus einen Fehler gemacht habe, aber es könnte auch anderswo sein und ich hatte gehofft, dass ich mir das noch einmal ansehen kann, um zu sehen, ob jemand etwas sieht, was ich nicht bin, da ich doch neu in diesem Bereich bin.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage