fixed: Geburtstag liegt vor heutigem Datum

This commit is contained in:
Marc Koch 2020-04-20 14:34:45 +02:00
parent 08ee557442
commit cb3c154a0a
1 changed files with 21 additions and 2 deletions

View File

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