public boolean isDate(String dateStr) { String[] date = dateStr.split("-"); if (date.length == 3) { try { int year = Integer.parseInt(date[2]); String month = date[1].toString(); int day = Integer.parseInt(date[0]); if(isYear(year) && isMonth(month) && isDay(day,month,year)) { return true; } else { return false; } } catch(Exception e) { return false; } } else { return false; } } public boolean isMonth(String month) { if(month.equalsIgnoreCase("JAN")||month.equalsIgnoreCase("FEB")||month.equalsIgnoreCase("MAR")||month.equalsIgnoreCase("APR") ||month.equalsIgnoreCase("MAY")||month.equalsIgnoreCase("JUN")||month.equalsIgnoreCase("JUL")||month.equalsIgnoreCase("AUG") ||month.equalsIgnoreCase("SEP")||month.equalsIgnoreCase("OCT")||month.equalsIgnoreCase("NOV")||month.equalsIgnoreCase("DEC")) { return true; } else { return false; } } public boolean isYear(int year) { if(1000 < year && year < 10000) { return true; } else { return false; } } public boolean isDay(int day,String month,int year) { if (month.equalsIgnoreCase("JAN")|| month.equalsIgnoreCase("MAR") || month.equalsIgnoreCase("MAY") || month.equalsIgnoreCase("JUL") || month.equalsIgnoreCase("AUG") || month.equalsIgnoreCase("OCT") || month.equalsIgnoreCase("DEC")) { if (1 <= day && day <= 31) { return true; } } else if (month.equalsIgnoreCase("APR") || month.equalsIgnoreCase("JUN") || month.equalsIgnoreCase("SEP") || month.equalsIgnoreCase("NOV")) { if (1 <= day && day <= 30) { return true; } } else { if(isLeapYear(year)) { if(1 <= day && day <= 29) { return true; } } else { if(1 <= day && day <= 28) { return true; } } } return false; } public boolean isLeapYear(int year) { if(year % 4 == 0 && year % 100!=0) { return true; } else { return false; } }