diff --git a/src/geburtstag/Geburtstag.java b/src/geburtstag/Geburtstag.java index 29e9062..d0cdcb7 100644 --- a/src/geburtstag/Geburtstag.java +++ b/src/geburtstag/Geburtstag.java @@ -47,11 +47,30 @@ public class Geburtstag { System.out.println(jetzt.getDayOfMonth() + "." + jetzt.getMonthValue() + "." + jetzt.getYear() + ", " + jetzt.getHour() + ":" + jetzt.getMinute()); int tageBisGeburtstag = 0; + + // Wie viele Tage hat dieses Jahr? (Schaltjahr?) + int tageImJahr = jetzt.getYear() % 4 == 0 ? 366 : 365; + if (myBirthday != null) { - LocalDateTime meinGeburtstagDiesesJah = LocalDateTime.of(jetzt.getDayOfYear(), myBirthday.getMonth(), + + // Wann ist der nächste Geburstag? + LocalDateTime meinNaechesterGeburtstag = LocalDateTime.of(jetzt.getYear(), myBirthday.getMonth(), myBirthday.getDayOfMonth(), myBirthday.getHour(), myBirthday.getMinute()); - tageBisGeburtstag = meinGeburtstagDiesesJah.getDayOfYear() - jetzt.getDayOfYear(); + + // falls der Geburtstag schon dieses Jahr war + if (meinNaechesterGeburtstag.isBefore(jetzt)) { + meinNaechesterGeburtstag = meinNaechesterGeburtstag.plusYears(1); + tageBisGeburtstag = (tageImJahr - meinNaechesterGeburtstag.getDayOfYear()) - jetzt.getDayOfYear(); + } + // falls der Geburtstag noch kommt + else { + tageBisGeburtstag = meinNaechesterGeburtstag.getDayOfYear() - jetzt.getDayOfYear(); + } + // Ausgabe System.out.println("Bis zu meinem Geburtstag sind es noch " + tageBisGeburtstag + " Tage."); + System.out.println(meinNaechesterGeburtstag.getYear() > jetzt.getYear() + ? "Mein Geburtstag war dieses Jahr schon." + : "Mein Geburtstag kommt dieses Jahr noch."); } }