Adobe Flex : calculo do tempo entre 2 datas

sábado, 22/03/2008 11:48 pm  

Algo que eu vi sendo solicitado na lista FLEXDEV e que eu também tinha interesse de algo para fazer o calculo do tempo entre 2 datas, no final acabei implementando um algoritmo simples, me baseando em algoritmos em javascript.

 

função para o calculo do tempo entre 2 datas:

saída obtida para a função implementada:

data inicial: 22/02/2006 24:40:01

data final: 22/03/2008 24:50:50

resultado: 759 days, 0 hours, 10 minutes, 49 seconds




 

Adobe Flex : calculo do tempo entre 2 datas

Algo que eu vi sendo solicitado na lista FLEXDEV e que eu também tinha interesse de algo para fazer o calculo do tempo entre 2 datas, no final acabei implementando um algoritmo simples, me baseando em algoritmos em javascript :D

 

 

função para o calculo do tempo entre 2 datas:

 


  1. public static function dateDiff( date1:Date, date2:Date ) : String {  
  2.   
  3.     // calculando a diferença em milisegundos das datas  
  4.     var sec:Number = date2.getTime() – date1.getTime();  
  5.   
  6.     // verificando se a segunda data é inferior que a primeira  
  7.     if( sec < 0 ) {  
  8.         Alert.show( "The second date ocurred earlier than the first one!" );  
  9.         return null;  
  10.     }  
  11.   
  12.     // variáveis auxiliares  
  13.     var second:Number = 1000;  
  14.     var minute:Number = 60 * second;  
  15.     var hour:Number = 60 * minute;  
  16.     var day:Number = 24 * hour;  
  17.   
  18.     // resultado em horas decimais  
  19.     var rdh:Number = Math.ceil(sec / hour);  
  20.     // resultado em minutos decimais  
  21.     var rdm:Number = Math.ceil(sec / minute);  
  22.     // resultado em segundos  
  23.     var rds:Number = Math.ceil(sec / second);  
  24.   
  25.     var days:Number = Math.floor(sec / day);  
  26.     sec -= days * day;  
  27.     var hours:Number = Math.floor(sec / hour);  
  28.     sec -= hours * hour;  
  29.     var minutes:Number = Math.floor(sec / minute);  
  30.     sec -= minutes * minute;  
  31.     var seconds:Number = Math.floor(sec / second);  
  32.   
  33.     var out:String =  
  34.         days + " day" + (days != 1 ? "s" : "") + ", " +  
  35.         hours + " hour" + (hours != 1 ? "s" : "") + ", " +  
  36.         minutes + " minute" + (minutes != 1 ? "s" : "") + ", " +  
  37.         seconds + " second" + (seconds != 1 ? "s" : "");  
  38.   
  39.     return out;  
  40. }  

 

exemplo de código para uso:

 

, , , , , , ,

Este post foi escrito por:

- que escreveu 500 post(s).


Entre em contato

  • Enderson

    Estava quebrando a cabeça para fazer uma subtração entre datas para calcular o valor de umas diárias aqui, muito obrigado, caiu do céu essa função, e ainda melhor por ser bem simples

  • Gilberto

    Cara sei que já passou muito tempo, mas muito obrigado, sua função me ajudou muito. Funcionando 100% !

    • erkobridee

      que bom 😀