Не проходит проверку по четности даты. Пробовал два варианта
- включать крайнюю дату 120;
-без крайней даты 119;
dateDefault.setMonth(m.getValue()-1);//здесь -1 потому что m.getValue() возвращает int на 1 больше
package com.javarush.task.task08.task0827;
import java.util.*;
import java.time.Month;
import java.util.Date;
import java.util.Calendar;
/*
Работа с датой
*/
public class Solution {
public static void main(String[] args) {
System.out.println(isDateOdd("MAY 1 2013"));
}
public static boolean isDateOdd(String date) {
boolean flag = false;
String s [] = date.split(" ");
Date dateDefault = new Date();
Month m = Month.valueOf(s[0]);
dateDefault.setYear(Integer.parseInt(s[2]));
dateDefault.setMonth(m.getValue()-1);
dateDefault.setDate(Integer.parseInt(s[1]));
Date currentDate = new Date();
currentDate.setYear(2013);
currentDate.setMonth(Calendar.JANUARY);
currentDate.setDate(1);
long msTimeDistance = dateDefault.getTime()-currentDate.getTime();
long msDay = 24*60*60*1000;
int dayCount = (int) (msTimeDistance/msDay)+1;// +1 день если включаем дату
//System.out.println("Days : "+dayCount);
if(dayCount%2==0){
flag=false;//четное число дней
}
else if(dayCount%2!=0){
flag=true;//нечетное число дней
}
return flag;
}
}