Валидатор пишет:
Метод isDateOdd() должен возвращать true, если количество дней с начала года - нечетное число, иначе false.
Рекомендация от ментора
Метод isDateOdd() возвращает неверное значение. Протестируй его работу с разными датами.
У меня в IDEA все работает правильно. Если дата JANUARY 1 2020, выводит на экран true. Если дата JANUARY 2 2020, выводит на экран false.
Подскажите, в чем ошибка.
package com.javarush.task.task08.task0827;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/*
Работа с датой
*/
/*
1. Реализовать метод isDateOdd(String date) так, чтобы он возвращал true, если количество дней с начала года - нечетное число, иначе false
2. String date передается в формате FEBRUARY 1 2013
Не забудьте учесть первый день года.
Пример:
JANUARY 1 2000 = true
JANUARY 2 2020 = false
*/
public class Solution {
public static void main(String[] args) throws ParseException {
System.out.println(isDateOdd("MAY 1 2013"));
}
public static boolean isDateOdd(String date) throws ParseException {
Date startofyear = new Date();
startofyear.setHours(0);
startofyear.setMinutes(0);
startofyear.setSeconds(0);
startofyear.setDate(0);
startofyear.setMonth(0);
DateFormat df = new SimpleDateFormat("MMMMM d yyyy", Locale.ENGLISH);
Date currentTime = new Date();
currentTime = df.parse(date);
long msTimeDistance = currentTime.getTime() - startofyear.getTime();
long msDay = 24 * 60 * 60 * 1000;
int dayCount = (int) (msTimeDistance / msDay);
return (dayCount % 2 != 0);
}
}