class Ideone
{
private static boolean validDate
( String date
) {
String [ ] parts
= date.
split ( "-" ) ; if ( parts.length != 3 ) return false ;
if ( parts[ 0 ] .length ( ) != 2 ) return false ;
int day
= Integer .
parseInt ( parts
[ 0 ] ) ; if ( day < 1 || day > 31 ) return false ;
if ( parts[ 1 ] .length ( ) != 2 ) return false ;
int month
= Integer .
parseInt ( parts
[ 1 ] ) ; if ( month < 1 || month > 12 ) return false ;
if ( parts[ 2 ] .length ( ) != 2 ) return false ;
int year
= Integer .
parseInt ( parts
[ 2 ] ) ;
return true ;
}
private static void test
( String date
) { String valid
= validDate
( date
) ? "is" : "isn't" ; System .
out .
println ( date
+ " " + valid
+ " a valid date." ) ; }
{
test( "34-12-00" ) ;
test( "31-12-dd" ) ;
}
}
Y2xhc3MgSWRlb25lCnsKCXByaXZhdGUgc3RhdGljIGJvb2xlYW4gdmFsaWREYXRlKFN0cmluZyBkYXRlKSB7CgoJCVN0cmluZ1tdIHBhcnRzID0gZGF0ZS5zcGxpdCgiLSIpOwoJCWlmIChwYXJ0cy5sZW5ndGggIT0gMykgcmV0dXJuIGZhbHNlOwoJCQoJCWlmIChwYXJ0c1swXS5sZW5ndGgoKSAhPSAyKSByZXR1cm4gZmFsc2U7CgkJaW50IGRheSA9IEludGVnZXIucGFyc2VJbnQocGFydHNbMF0pOwoJCWlmIChkYXkgPCAxIHx8IGRheSA+IDMxKSByZXR1cm4gZmFsc2U7CgkJCgkJaWYgKHBhcnRzWzFdLmxlbmd0aCgpICE9IDIpIHJldHVybiBmYWxzZTsKCQlpbnQgbW9udGggPSBJbnRlZ2VyLnBhcnNlSW50KHBhcnRzWzFdKTsKCQlpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHJldHVybiBmYWxzZTsKCQkKCQlpZiAocGFydHNbMl0ubGVuZ3RoKCkgIT0gMikgcmV0dXJuIGZhbHNlOwoJCWludCB5ZWFyID0gSW50ZWdlci5wYXJzZUludChwYXJ0c1syXSk7CgkJCgkJcmV0dXJuIHRydWU7Cgl9CgkKCXByaXZhdGUgc3RhdGljIHZvaWQgdGVzdChTdHJpbmcgZGF0ZSkgewoJCVN0cmluZyB2YWxpZCA9IHZhbGlkRGF0ZShkYXRlKSA/ICJpcyIgOiAiaXNuJ3QiOwoJCVN5c3RlbS5vdXQucHJpbnRsbihkYXRlICsgIiAiICsgdmFsaWQgKyAiIGEgdmFsaWQgZGF0ZS4iKTsKCX0KCQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJdGVzdCgiMzQtMTItMDAiKTsKCQl0ZXN0KCIzMS0xMi1kZCIpOwoJfQp9