Programación SDF
SimpleDateFormat SDF estático privado = nuevo SimpleDateFormat(patrón);
Escaneo de escáner estático privado = nuevo escáner (sistema . in);
// Juicio de fecha
Valor booleano estático público isValdateDate(string strDate) {
Boolean isPassed = false
SDF set letterant(false); >
if (strDate!= null amp ampstrdate . length() gt; 0) {
try {
Fecha dt check =(Fecha)(SDF . parse(strDate ));
cadena strCheck = formato SDF (dt check);
if (strDate.equals(strCheck)) {
isPassed = true p>
}de lo contrario{
isPassed = false
}
} catch(Exception e) {
isPassed = false
}
}
return isPassed
}
//Devuelve la fecha según la entrada.
Valor de fecha estática pública de(String strDate) {
Fecha fecha = null
Pruebe {
fecha =(opción de fecha. isvaldatedate(strDate)? sdf.parse(strDate)
:null);
} catch (ParseException e) {
e. /p>
}
Fecha de regreso;
}
//Prueba
Public static void main(String[] args) {
Fecha[] fechas = nueva fecha[2];
for(int I = 0; i lt2; i) {
System. out.println("Entrada" (i 1) "Año, mes, día (el mes está representado por 2 dígitos):");
línea de búfer de cadena = nuevo búfer de cadena();
for(int j = 0; j lt3; j ) {
line . append(scan . nextline() "-"); opción. valor de (línea. tostring().
subcadena(0, línea . longitud()-1));
}
}
if(fecha[0]!= null amp ampdate[ 1 ]! = nulo) {
int días =(int)math .getTime() - fechas[1].getTime())
/ (24 * 60 * 60 * 1000));
System.out.println("La distancia entre ellos " días " días ");
int afterDays = 2 ;
Largo tiempo 1 = fecha[0]. getTime() 24 * 60 * 60 * 1000 * afterDays;
largo tiempo 2 = fecha[1]. getTime() 24 * 60 * 60 * 1000 * afterDays;
Fecha[0]. setTime(hora 1);
Fecha[1]. setTime(hora 2);
System.out.println(afterDays "Días, ambos:\n "
sdf.format(dates[0]) "\n " p>
sdf.format(fecha[1]);
} En caso contrario {
System.out.println("¡Error de entrada!");
} p>
}
}
}
// Excepto el juicio de fecha, otras funciones se pueden manejar adecuadamente usando el calendario, o se pueden escribir como métodos separados