Доброго дня! Помогите, пожалуйста. Почему-то выбрасывает эксепшн: java.text.ParseException: Unparseable date. Не могу понять, почему не парсится строка! СПАСИБО!
------------------------------------------------------------
public class Solution {
public static void main(String[] args) throws ParseException {
System.out.println(isDateOdd("DEC 12 2013"));
}
public static boolean isDateOdd(String date) throws ParseException {
Date userDate = new SimpleDateFormat("MMM d YYYY").parse(date);
Calendar calendar = new GregorianCalendar();
calendar.setTime(userDate);
int dayCount = calendar.get(Calendar.DAY_OF_YEAR);
return dayCount > 0 && dayCount % 2 == 0 ? true : false;
}
}
package com.javarush.task.task08.task0827;
import java.util.Calendar;
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Locale;
import java.util.TimeZone;
/*
Работа с датой
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().
*/
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 odd;
long msDay = 24 * 60 * 60 * 1000;
/*
SimpleDateFormat usertime = new SimpleDateFormat("MMM DD YYYY");
usertime.parse(date);
Date initialdate = new Date();
initialdate.setHours(0);
initialdate.setMinutes(0);
initialdate.setSeconds(0);
initialdate.setDate(1);
initialdate.setMonth(Calendar.JANUARY);
initialdate.setYear(usertime.getYear());
long difference = usertime.getTime() - initialdate.getTime();
if((difference/msDay)%2 == 0){ //переделать условие!!!
odd = false;
}
else{
odd = true;
}
return odd;
*/
Date userdate = new Date(date);
Date initialdate = new Date(date);
initialdate = userdate;
initialdate.setHours(0);
initialdate.setMinutes(0);
initialdate.setSeconds(0);
initialdate.setDate(1);
initialdate.setMonth(Calendar.JANUARY);
long difference = userdate.getTime() - initialdate.getTime();
if((difference/msDay)%2 == 0){ //переделать условие!!!
odd = false;
}
else{
odd = true;
}
return odd;
}
}