Kann bitte jemand meinen Code überprüfen. An was habe ich nicht gedacht?![]()
![]()
![]()



package de.codegym.task.task08.task0827;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
/*
Mit Datumsangaben arbeiten
*/
public class Solution {
public static void main(String[] args) {
System.out.println(istUngeradesDatum("January 1 2000"));
}
public static boolean istUngeradesDatum(String sDate) {
int diff;
try {
DateTimeFormatter formatter =
DateTimeFormatter.ofPattern("MMMM d yyyy", Locale.ENGLISH);
LocalDate date = LocalDate.parse(sDate, formatter);
//System.out.println("Eingabe- Datum: " + date );
//System.out.println("Start- Monat : " + date.getMonthValue() );
GregorianCalendar cal = new GregorianCalendar(date.getYear(),0 ,1,0,0,0);
//GregorianCalendar cal = new GregorianCalendar(date.getYear(),date.getMonthValue() -1 ,1,0,0,0); //wenn ungerader Datumstag gepüfft werden soll
Date yearStartTime = cal.getTime();
//System.out.println("Start- Datum: " + yearStartTime );
Duration duration = Duration.between(date.atStartOfDay(), yearStartTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
diff = (int) Math.abs(duration.toDays());
//System.out.println("Tagesanzahl : " + diff );
//if (date.getYear() % 4 == 0 && (date.getYear() % 100 != 0 || date.getYear() % 400 == 0)) // Schaltjahrprüfung nicht notwendig
diff++; // ersten Tag dazu addieren
//System.out.println("Tagesanzahl nach Addition Starttag: " + diff );
} catch (DateTimeParseException exc ) {
System.out.printf("%s is not parsable!%n", sDate);
throw exc;
}
return (diff % 2 == 1);
}
}