I had being trying to add one more static method and one and two instance methods.
package com.codegym.task.task08.task0827;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/*
Working with dates
*/
public class Solution {
public void doNothing() {}
//public void doNotingOneMoreTime() {}
public static void main(String[] args) {
System.out.println("MAY 1 2013 = " + isDateOdd("MAY 1 2013"));
}
public static boolean isDateOdd(String date) {
SimpleDateFormat sdf = new SimpleDateFormat("MMMM/dd/YY");
StringBuilder sb = new StringBuilder();
String[] dateFormat = date.split(" ");
Arrays.stream(dateFormat).forEach(s -> {sb.append(s + "/");});
sb.delete(sb.length() - 1, sb.length());
//sb.insert(1, sb.substring(1, 3).toLowerCase()).delete(3, 5);
Pattern p = Pattern.compile("\\d+");
List<Integer> dateValues = Arrays.stream(sb.toString().split("/"))
.filter(s -> {Matcher m = p.matcher(s);
boolean ret = m.matches() ? true : false;
return ret;
}).map(s -> Integer.parseInt(s)).collect(Collectors.toList());
//dateValues.forEach(System.out::println);
// 0;
String m = sb.substring(0, sb.indexOf("/"));
int month = 0;
switch (m) {
case ("JANUARY"):
break;
case ("FEBRUARY"):
month += 1;
break;
case ("MARCH"):
month += 2;
break;
case ("APRIL"):
month += 3;
break;
case ("MAY"):
month += 4;
break;
case ("JUNE"):
month += 5;
break;
case ("JULY"):
month += 6;
break;
case ("AUGUST"):
month += 7;
break;
case ("SEPTEMBER"):
month += 8;
case ("OCTOBER"):
month += 9;
break;
case ("NOVEMBER"):
month += 10;
break;
case ("DECEMBER"):
month += 11;
break;
default:
break;
};
//System.out.println(month);
Calendar c = sdf.getCalendar();
c.set(dateValues.get(1), month, dateValues.get(0));
//System.out.println(c.get(Calendar.DAY_OF_YEAR));
return c.get(Calendar.DAY_OF_YEAR) % 2 == 0 ? false : true;
}
}