En este tutorial vamos a aprender a comparar dos fechas y a calcular la diferencia
en días entre ellas.
Para ello emplearemos, evidentemente, la clase Date y además,
su método getTime(). Este método nos devuelve la diferencia
horaria en milisegundos entre una fecha determinada y la media noche del 1 de
enero de 1970.
COMO HACERLO.
Primero creamos seis cajas de texto del tipo "introducción de texto"
donde se van a insertar día, mes y año para las dos fechas a comparar.
Después, definimos la función compararFechas que es la
que va a realizar los cálculos requeridos. Su código es:
function compararFechas(fecha1:Date, fecha2:Date):Void {
// utilizamos la constante para dividir los milisegundos
// y convertirlos en días 1000*60*60*24=86400000
var constante:Number = 86400000;
var diferenciaDias:Number = Math.abs((fecha2.getTime()-fecha1.getTime())/constante);
//vemos cual es la más reciente
if (fecha1<fecha2) {
mensaje = "fecha2 mayor que fecha1, diferencia = "+diferenciaDias+"
días";
} else if (fecha1>fecha2) {
mensaje = "fecha1 mayor que fecha2, diferencia = "+diferenciaDias+"
días";
} else {
mensaje = "fecha1 igual que fecha2, diferencia = "+diferenciaDias+"
días";
}
}
Como vemos es una función que recibe como parámetros dos objetos del tipo Date, que son las fechas a comparar. Calculamos la diferencia en milisegundos entre las dos fechas con (fecha2.getTime()-fecha1.getTime()). Esta diferencia la dividimos por la constante para pasar de milisegundos a días y.....¡¡¡YA ESTÁ!!!
El resto del código de la función es para mostrar el mensaje
en la parte inferior de la película.
Por último, en el botón ponemos:
on (release) {
// creo los dos objetos Date con los datos introducidos
var fecha1:Date = new Date(anio1, mes1-1, dia1);
var fecha2:Date = new Date(anio2, mes2-1, dia2);
// llamo a la función que compara nuestras fechas
compararFechas(fecha1, fecha2);
}
¿fácil? ¿verdad? ya os lo decíamos. Lo bueno es que al hacer el calculo basándose en la hora universal, la media noche del 1 de enero de 1970, no tenemos que preocuparnos de los años bisiestos, siempre hace bien las cuentas.
Podéis descargaros este mismo ejemplo y ver cómo funciona: compararFechas.fla