static public boolean validateDate(String sDate) {
SimpleDateFormat fmt1 = new SimpleDateFormat("MM/dd/yy");
boolean valid = false;
fmt1.setLenient(false);
try{
fmt1.parse(sDate);
if (!sDate.endsWith("/")){
StringTokenizer st = new StringTokenizer(sDate, "/");
int count = 0;
int month = 0, day = 0, year = 0; while (st.hasMoreTokens()) {
count++;
String sValue = st.nextToken();
int value = Integer.parseInt(sValue);
if (count == 1) {
month = value;
}
if (count == 2) {
day = value;
}
if (count == 3) {
year = value;
if ( (sValue.length() == 2) || (sValue.length() == 4)) {
if (month >= 1 && month <= 12) {
int monthDays = 30;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
monthDays = 31;
break;
case 2:
if (year % 4 == 0) {
monthDays = 29;
}
else {
monthDays = 28;
}
break;
default:
monthDays = 30;
}
if (day <= monthDays) {
if (year >= 1 && year <= 99 || year >= 1000 && year <= 9999) {
valid = true;
}
}
}
}
}
if (count > 3) {
valid = false;
break;
}
}
}
}catch(Exception e){
valid = false;
}
System.out.println(valid);
return valid;
}