Уровень 8, лекция 11.
/*
Работа с датой
1. Реализовать метод isDateOdd(String date) так, чтобы он возвращал true, если количество дней с начала года - нечетное число, иначе false
2. String date передается в формате FEBRUARY 1 2013
Не забудьте учесть первый день года.
Пример:
JANUARY 1 2000 = true
JANUARY 2 2020 = false
Требования:
1. Программа должна выводить текст на экран.
2. Класс Solution должен содержать два метода.
3. Метод isDateOdd() должен возвращать true, если количество дней с начала года - нечетное число, иначе false.
4. Метод main() должен вызывать метод isDateOdd().
*/
import java.util.Date;
public class Solution {
public static void main(String[] args) {
System.out.println(isDateOdd("JANUARY 2 2020"));
}
public static boolean isDateOdd(String date) {
//Разбиваем строку на 3(месяц, день, год);
String [] dateArray = new String[date.length()];
for (int i = 0; i < date.length(); i++) {
dateArray[i] = "";
dateArray[i] += date.charAt(i);
}
String month = "";
String day = "";
String year = "";
int probel = 0;
for (int i = 0; i < dateArray.length; i++) {
if (probel == 0) {
if (!dateArray[i].equals(" "))
month += dateArray[i];
else {
++probel;
++i;
}
}
if (probel == 1) {
if (!dateArray[i].equals(" "))
day += dateArray[i];
else{
++probel;
++i;
}
}
if (probel == 2)
if (!dateArray[i].equals(" "))
year += dateArray[i];
else
break;
}
// переводим все значения в int;
int dayInt = Integer.parseInt(day);
int yearInt = Integer.parseInt(year);
int monthInt = 0;
switch (month.toLowerCase()) {
case ("january"):
monthInt = 0;
break;
case ("february"): //"FEBRUARY" || "February" ||
monthInt = 1;
break;
case ("march"): //"MARCH" || "March" ||
monthInt = 2;
break;
case ("april"): //"APRIL" || "April" ||
monthInt = 3;
break;
case ("may"): //"MAY" || "May" ||
monthInt = 4;
break;
case ("june"):
monthInt = 5;
break;
case ("july"):
monthInt = 6;
break;
case ("august"):
monthInt = 7;
break;
case ("september"):
monthInt = 8;
break;
case ("october"):
monthInt = 9;
break;
case ("november"):
monthInt = 10;
break;
case ("december"):
monthInt = 11;
break;
}
Date yearStartDate = new Date();
yearStartDate.setSeconds(0);
yearStartDate.setMinutes(0);
yearStartDate.setHours(0);
yearStartDate.setDate(1);
yearStartDate.setMonth(0);
yearStartDate.setYear(yearInt);
Date userDate = new Date();
userDate.setSeconds(0);
userDate.setMinutes(0);
userDate.setHours(0);
userDate.setDate(dayInt);
userDate.setMonth(monthInt);
userDate.setYear(yearInt);
long msTimeDistance = userDate.getTime() - yearStartDate.getTime();
long msDay = 24 * 60 * 60 * 1000;
int dayCount = (int) (msTimeDistance/msDay);
if (dayCount % 2 == 0)
return true;
else
return false;
}
}