Clase de actionscript 3 para el manejo de fechas

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í.

Enviar comentario

Deja una respuesta