Любые мыслимые проверки код проходит.
Валидатор постоянно ругается на 3-е условие.
Логично, что если убрать +1 в 26-й строке, то результаты станут инвертными. Но в любом случае валидатор режет решение.
Опять тот случай, когда надо написать именно так, как ожидлает валидатор?
package com.javarush.task.task08.task0827;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
Работа с датой
*/
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 {
boolean test;
DateFormat format = new SimpleDateFormat("MMMM d yyyy");
Date dateNow = format.parse(date);
Date dateYear = format.parse("JANUARY 1 2013");
long ms = dateNow.getTime() - dateYear.getTime();
int dayCount = (int) ms/(24*60*60*1000);
System.out.println(dayCount);
if ((dayCount+1) % 2 == 0) {
test = false;
}
else {
test = true;
}
return test;
}
}
/*
Работа с датой
1. Реализовать метод isDateOdd(String date) так, чтобы он возвращал true, если количество дней с начала года - нечетное число, иначе false
2. String date передается в формате MAY 1 2013
Не забудьте учесть первый день года.
Пример:
JANUARY 1 2000 = true
JANUARY 2 2020 = false
Требования:
1. Программа должна выводить текст на экран.
2. Класс Solution должен содержать два метода.
3. Метод isDateOdd() должен возвращать true, если количество дней с начала года - нечетное число, иначе false.
4. Метод main() должен вызывать метод isDateOdd().
*/