public static void main(String[] args) {
System.out.println(isDateOdd("MAY 1 2013"));
// System.out.println(isDateOdd("OCT 3 2017"));
// System.out.println();
// System.out.println(isDateOdd("FEB 1 2017"));
// System.out.println();
// System.out.println(isDateOdd("JAN 3 2017"));
}
public static boolean isDateOdd(String date) {
Date endDate = new Date(date);
endDate.setHours(0);
endDate.setMinutes(0);
endDate.setSeconds(0);
Date startDate = new Date();
startDate.setHours(0);
startDate.setMinutes(0);
startDate.setSeconds(0);
startDate.setMonth(0);
startDate.setDate(1);
startDate.setYear(endDate.getYear());
long msDay = 1000 * 60 * 60 * 24;
long start = startDate.getTime()/msDay;
long end = endDate.getTime()/msDay;
long dayDistance = end - start;
// System.out.println(dayDistance);
if (dayDistance % 2 == 0) return true;
else return false;
}
Логика такая: Считаю разницу между днями. Если разница четная - значит, сегодня нечётный день с начала года (true). И наоборот.
18 - 1 = 17
И первый день года учитывается (1 - 1) % 2 == 0, т.к. 0 / 2 = 0package com.javarush.task.task08.task0827;
import java.util.Date;
/*
Работа с датой
*/
public class Solution {
public static void main(String[] args) {
System.out.println(isDateOdd("MAY 1 2013"));
// System.out.println(isDateOdd("OCT 3 2017"));
// System.out.println();
// System.out.println(isDateOdd("FEB 1 2017"));
// System.out.println();
// System.out.println(isDateOdd("JAN 3 2017"));
}
public static boolean isDateOdd(String date) {
Date endDate = new Date(date);
endDate.setHours(0);
endDate.setMinutes(0);
endDate.setSeconds(0);
Date startDate = new Date();
startDate.setHours(0);
startDate.setMinutes(0);
startDate.setSeconds(0);
startDate.setMonth(0);
startDate.setDate(1);
startDate.setYear(endDate.getYear());
long msDay = 1000L * 60L * 60L * 24L;
long start = startDate.getTime()/msDay;
long end = endDate.getTime()/msDay;
int dayDistance =(int)end - (int)start;
// System.out.println(dayDistance);
if (dayDistance % 2 == 0) return true;
else return false;
}
}