Skip to content

Instantly share code, notes, and snippets.

@erkobridee
Created January 31, 2012 12:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save erkobridee/1710364 to your computer and use it in GitHub Desktop.
Save erkobridee/1710364 to your computer and use it in GitHub Desktop.
[AS3] Calculo da diferença entre 2 datas
public static function dateDiff( date1:Date, date2:Date ) : String {
// calculando a diferença em milisegundos das datas
var sec:Number = date2.getTime() - date1.getTime();
// verificando se a segunda data é inferior que a primeira
if( sec < 0 ) {
Alert.show( "The second date ocurred earlier than the first one!" );
return null;
}
// variáveis auxiliares
var second:Number = 1000;
var minute:Number = 60 * second;
var hour:Number = 60 * minute;
var day:Number = 24 * hour;
// resultado em horas decimais
var rdh:Number = Math.ceil(sec / hour);
// resultado em minutos decimais
var rdm:Number = Math.ceil(sec / minute);
// resultado em segundos
var rds:Number = Math.ceil(sec / second);
var days:Number = Math.floor(sec / day);
sec -= days * day;
var hours:Number = Math.floor(sec / hour);
sec -= hours * hour;
var minutes:Number = Math.floor(sec / minute);
sec -= minutes * minute;
var seconds:Number = Math.floor(sec / second);
var out:String =
days + " day" + (days > 1 ? "s" : "") + ", " +
hours + " hour" + (hours > 1 ? "s" : "") + ", " +
minutes + " minute" + (minutes > 1 ? "s" : "") + ", " +
seconds + " second" + (seconds > 1 ? "s" : "");
return out;
}
/*------------------*/
// exemplo de uso
var dt1:Date = new Date(2006, 1, 22, 23, 40, 1);
var dt2:Date = new Date(2008, 2, 22, 23, 50, 50);
dateDiff( dt1, dt2 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment