Esta es una pequeña clase que hice para manejar las fechas, saber la diferencia, cual es mayor y viceversa.
Código :
package { public class dateUtils { static public const SENCONDS:uint = 2; static public const MINUTES:uint = 3; static public const HOURS:uint = 4; /** * * @param date1 fecha a comparar * @param date2 fecha a comparar * @param unit Unidad en que se quiere devolver la diferencia. * @return Number Con la diferencia en la unidad pedida */ static public function dateDiff( date1:Date, date2:Date, unit:uint):Number { var _divisor : Number = 1000*(unit==dateUtils.SENCONDS?1:(unit==dateUtils.MINUTES?60:(unit==dateUtils.HOURS?(60*60):(60*60*60)))); var _dif:Number = (date1.getTime()-date2.getTime()) / ( _divisor ); return Math.abs(_dif); } /** * Devuelve la menor de las fechas pasadas por parametro. * @param ...args Arreglo que contiene todas las fechas pasadas por parametro * @return Fecha menor. */ static public function minorDate( ...args ):Date { args.sort( _orderDatesFunction ); return args[0]; } /** * Devuelve la mayor de las fechas pasadas por parametro. * @param ...args Arreglo que contiene todas las fechas pasadas por parametro * @return Fecha mayor. */ static public function mayorDate( ...args:Array ):Date { args.sort( _orderDatesFunction ); return args[ args.length-1 ]; } /** * Funcion para comparar 2 fechas. 'Usado en funcion sort del array' * @param date1 * @param date2 * @return */ static private function _orderDatesFunction( date1:Date, date2:Date ):Number { if( date1 > date2 ) return 1; else if( date1 < date2 ) return 0; else return -1; } } }
y para utilizarla es igual de simple.
Código :
/** Hallando la diferencia entre 2 fechas **/ var fecha1:Date = new Date("2009/2/2 2:01 PM"); var fecha2:Date = new Date("2009/2/2 3:31 PM"); // Diferencia en minutos trace( dateUtils.dateDiff( fecha1, fecha2, dateUtils.MINUTES ); // Diferencia en horas trace( dateUtils.dateDiff( fecha1, fecha2, dateUtils.HOURS ); /** Hallando la menor y la mayor de todas las fechas **/ var fecha3:Date = new Date("1982/9/9 2:00 AM"); var fecha3:Date = new Date("1972/9/9 4:00 PM"); var arreglo_de_fechas:Array = new Array( fecha1, fecha2, fecha3, fecha4 ); // La menor trace( dateUtils.minorDate( arreglo_de_fechas ).toString() ); // La mayor trace( dateUtils.mayorDate( arreglo_de_fechas ).toString() );
Espero le sirva de utilidad a mas de uno por ahí.
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Zguillez el 10 de Octubre de 2009
Por M@U el 11 de Octubre de 2009
Por diego el 12 de Octubre de 2009
Me sorprende.
Por Martincho7 el 12 de Octubre de 2009
[code]
// Diferencia en minutos
trace( dateUtils.dateDiff( fecha1, fecha2, dateUtils.MINUTES );
// Diferencia en horas
trace( dateUtils.dateDiff( fecha1, fecha2, dateUtils.HOURS );
[code]
Por Martincho7 el 12 de Octubre de 2009
Es porque no estan bien cerrados los Trace les falta el parentesis al final "(" .
Tambien encontre otro en los otros trace que no puede convertir en Date el resultado.
Este es el error:
"TypeError: Error #1034: Error de conversión forzada: no se puede convertir []@e9e94d9 en Date.
at dateUtils$/minorDate()
at Main()"
Por Zandy el 13 de Octubre de 2009
@BOFH's : Pudieran updatear el post .. ???
Aqui unas funcioncillas mas que le agrege que me hicieron falta por estos dias... !
Código :
espero les sirva..
Por Zandy el 13 de Octubre de 2009
@BOFH's : Pudieran updatear el post .. ???
Aqui unas funcioncillas mas que le agrege que me hicieron falta por estos dias... !
Código :
Por merlin1989 el 02 de Enero de 2010
Por Cosmitar el 07 de Mayo de 2010
gracias por compartir la clase, me resultó útil
Por Jesus el 07 de Marzo de 2011