“Conocimientos Programación>Programación Java

Cómo calcular Fecha Diferencia en Java

2011/5/27
Cálculo de las diferencias entre las dos fechas en Java 6.0 y versiones anteriores pueden ser engañosamente difícil debido a la necesidad de acomodar los años bisiestos , segundos bisiestos , los tiempos de ahorro de luz del día y otros ajustes realizados periódicamente a la agenda de la mayoría de los países. Esta guía le ofrece dos soluciones , una que no se debe utilizar en situaciones en horario de verano o los años bisiestos pueden causar problemas graves y una opción más sofisticada basada en la biblioteca JSR -310 . Esta biblioteca está programado para ser parte de la API de Java 7.0 cuando se lance a finales de 2010 . Sin embargo, puede ser descargado para su uso ahora . Cosas que necesitará de computadora

Java JSR -310 (opcional )
Mostrar más instrucciones
Uso de Java 6.0 Herramientas
1

Crear un nueva clase con el nombre de " DateDifferencer " y el nombre de archivo " DateDifferencer.java . " Dale el siguiente esqueleto :

/*** Esta clase proporcionará dos métodos para encontrar las diferencias entre las fechas: * - Un método nativo que no tiene en cuenta los años bisiestos y otras rarezas de fecha * , pero que es compatible con la última versión de Java , a principios de 2010 * - . . Una versión más sofisticada que utiliza la biblioteca externa JSR -310 *, que se incluirá en Java 7 , que se publicará a finales de 2010 ** @ author Kevin Walker * Clase /public DateDifferencer {

}

Todo lo demás va a ir dentro de esta estructura de clases.
2

Calcular el número de milisegundos en un día y guárdelo en una constante para su uso posterior. Esto es necesario porque Java versiones 6.0 y anteriores comprenden el tiempo de forma nativa en milisegundos o nanosegundos .

/*** El número de milisegundos de un día es igual a 1000 milisegundos por segundo * 60 segundos por minuto * 60 minutos por horas * 24 horas al día * /foto

public double MILLISECONDS_IN_DAY static final = 1000 * 60 * 60 * 24 ;
3

crear el método " findDifference " . Asegúrese de que el comentario Javadoc toma nota de la debilidad en el procedimiento para cualquier otra persona que decida utilizar.

/*** Esta clase utiliza un método sencillo para calcular la diferencia entre dos fechas. * Sin embargo , no es impecable . Las imprecisiones pueden ser el resultado de los años bisiestos . ** @ Return el número de días de diferencia entre las dos fechas sin corrección de los años bisiestos o de horario de verano el tiempo cambia . * /Double findDifference public static ( Fecha d1 , d2 Fecha ) {
< p> doble diff = Math.abs ( d2.getTime () - d1.getTime ());

dobles día = diff /MILLISECONDS_IN_DAY ;
días de retorno

;

}

Esto funciona mediante la búsqueda de la diferencia entre las dos fechas , en términos de milisegundos . A continuación, se divide por el número de milisegundos en un día (que que calculó en el paso 2 ) .
Uso JSR -310
4

Coloque el JSR - 310 Tiempo archivo " jar" en el mismo directorio que el resto de su programa.
5

Añadir unas importaciones más a la clase DateDifferencer para que pueda tener acceso a la biblioteca de JSR 310 .
< p > javax.time.Duration importación , importación javax.time.period.Period ; .
6

Añadir un nuevo método a la clase DateDifferencer

/*** @ return string que describe la diferencia entre las dos fechas * /static String findDifferenceWithJSR pública ( fecha de inicio , fecha de finalización ) { tiempo = duración Duration.durationBetween ( inicio, fin ) . Período diff = Period.nanos ( duration.toNanos ()); volver nueva diff.toString () ;}

Esto crea un objeto de "Duración" , que mantiene la diferencia entre las dos fechas. Podrías parar allí y regresar comando " toString " de la Duración . Sin embargo , esto proporciona la respuesta en términos de segundo , que no es legible por humanos . Por lo tanto, a continuación, crea un objeto "período" y utiliza su mando " toString " .

Programación Java
Cómo agregar un nuevo método en NetBeans
Cómo dar formato a las comas en un número en Java
¿Cuál es la función de Java
Cómo eliminar una línea nueva de una cadena en Java
Cómo realizar un desplazamiento de bits en Java
Cómo utilizar un operador No en Java
Tipos incompatibles se encontraron en Java
Cómo vaciar un emulador Buffer de entrada Android
Conocimientos Informáticos © http://www.ordenador.online