Ich habe die richtige Ausgabe, allerdings sagt die Aufgabe mir, dass die Methode die falschen Werte zurückgibt.
package de.codegym.task.task08.task0827;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.text.DateFormat;
import java.text.ParseException;
/*
Mit Datumsangaben arbeiten
*/
public class Solution {
public static void main(String[] args) throws ParseException{
System.out.println(istUngeradesDatum("JANUARY 1 2020"));
}
public static boolean istUngeradesDatum(String date) throws ParseException{
Date jahrStartzeit = new Date();
DateFormat d = new SimpleDateFormat("MMMM dd yyyy");
Date da = d.parse(date);
jahrStartzeit.setHours(0);
jahrStartzeit.setMinutes(0);
jahrStartzeit.setSeconds(0);
jahrStartzeit.setDate(da.getDate());
jahrStartzeit.setMonth(da.getMonth());
jahrStartzeit.setYear(da.getYear());
Date jahresBeginn = new Date();
jahresBeginn.setHours(0);
jahresBeginn.setMinutes(0);
jahresBeginn.setSeconds(0);
jahresBeginn.setDate(1);
jahresBeginn.setMonth(0);
jahresBeginn.setYear(da.getYear());
long msZeitdifferenz = jahrStartzeit.getTime() - jahresBeginn.getTime();
long msTag = 24 * 60 * 60 * 1000;
int tage = (int) (msZeitdifferenz/msTag)+1;
//System.out.println(tage);
if(tage % 2 == 0)
return false;
return true;
}
}