Со всеми годами, кроме 1970-го - работает. Если ставлю в объект первое января 1970-го года, то getTime возвращает отрицательное число, и из-за этого вывод неправильный. Откуда оно берется и как это лучше исправить?
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;
/*
Работа с датой
*/
public class Solution {
public static void main(String[] args) throws ParseException {
System.out.println(isDateOdd("JANUARY 2 1969"));
}
public static boolean isDateOdd(String date) throws ParseException {
DateFormat format = new SimpleDateFormat("MMMM d yyyy", Locale.US);
Date inputDate = format.parse(date);
System.out.println(inputDate.getYear());
Date firstDayInTheYear = new Date();
firstDayInTheYear.setYear(inputDate.getYear());
firstDayInTheYear.setMonth(0);
firstDayInTheYear.setDate(0);
int daysInInputDate = (int) (inputDate.getTime() / 1000 / 3600 / 24);
int daysInFirstDate = (int) (firstDayInTheYear.getTime() / 1000 / 3600 / 24);
System.out.println(daysInFirstDate + " " + daysInInputDate );
if ((daysInInputDate - daysInFirstDate) % 2 == 0) return true;
else return false;
}
}