Не пойму, где косяк. Работает корректно, даже високосный год учитывается
package com.javarush.task.task08.task0827;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/*
Работа с датой
*/
public class Solution {
public static void main(String[] args) throws ParseException {
System.out.println(isDateOdd("MAY 1 2024"));
System.out.println(isDateOdd("MAY 2 2024"));
System.out.println(isDateOdd("MAY 3 2024"));
System.out.println(isDateOdd("MAY 4 2024"));
}
public static boolean isDateOdd(String date) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("MMMM dd yyyy", Locale.ENGLISH);
Date date1;
date1 = format.parse(date);
Date date2 = new Date();
date2.setDate(1);
date2.setMonth(0);
int y = date1.getYear();
date2.setYear(y);
boolean k;
if (date1.getMonth() == 0 && date1.getDate() == 1){
k = true;
}
else {
if (date1.getMonth() == 0 && date1.getDate() == 2) {
k = false;
} else {
long date3 = date1.getTime() - date2.getTime();
int d = (int) date3 / (24 * 60 * 60 * 1000);
if (d % 2 == 0) {
k = false;
} else k = true;
}
}
return k;
}
}