andrerm 0 Denunciar post Postado Abril 20, 2010 Preciso de uma função que me retorne a diferença em horas e minutos entre a data atual e uma outra data que será passada no parametro. Achei alguns exemplos na net e tentei adapatar para o que eu preciso. A diferença entre as datas até retorna mais não retorna valores negativos e preciso que retorne. Ex. Diferença entre 20/04/2010 16:50(data passada no parameto) e 20/04/2010 17:50(data Atual) deveria me retornar -01:00 mais retorna 01:00 function calculaPrazo(prazoAtendimento:Date) { var dataAtual = new Date(); dataAtual = dataAtual.getTime(); prazoAtedimento = prazoAtedimento.getTime(); var tempoRestante = prazoAtendimento - dataAtual; var horas = Math.floor(tempoRestante/3600000); var minutos = Math.floor((tempoRestante%3600000)/60000); horas = String(horas % 24); if(horas.length < 2){ horas = "0" + horas; } minutos = String(minutos % 60); //O sinal de negativo de aparecer somente na hora if (minutos < 0) minutos = minutos * -1; return horas+":"+minutos } Alguém tem uma idéia de como posso resolver esse problema. Compartilhar este post Link para o post Compartilhar em outros sites
Jerfs 1 Denunciar post Postado Abril 21, 2010 Preciso de uma função que me retorne a diferença em horas e minutos entre a data atual e uma outra data que será passada no parametro. Achei alguns exemplos na net e tentei adapatar para o que eu preciso. A diferença entre as datas até retorna mais não retorna valores negativos e preciso que retorne. Ex. Diferença entre 20/04/2010 16:50(data passada no parameto) e 20/04/2010 17:50(data Atual) deveria me retornar -01:00 mais retorna 01:00 function calculaPrazo(prazoAtendimento:Date) { var dataAtual = new Date(); dataAtual = dataAtual.getTime(); prazoAtedimento = prazoAtedimento.getTime(); var tempoRestante = prazoAtendimento - dataAtual; var horas = Math.floor(tempoRestante/3600000); var minutos = Math.floor((tempoRestante%3600000)/60000); horas = String(horas % 24); if(horas.length < 2){ horas = "0" + horas; } minutos = String(minutos % 60); //O sinal de negativo de aparecer somente na hora if (minutos < 0) minutos = minutos * -1; return horas+":"+minutos } Alguém tem uma idéia de como posso resolver esse problema. Andrerm, será que se você usar um if antes de retornar o resultado, testanto mais ou menos assim: Se dataAtual < prazoAtedimento return "-"+horas+":"+minutos; senao return horas+":"+minutos fim se Será que não funcionaria!? Compartilhar este post Link para o post Compartilhar em outros sites
andrerm 0 Denunciar post Postado Abril 22, 2010 Descobri o problema. No Action Script os meses começam em 0 e não em 1, e não estava fazendo o tratamento da data no momento de enviar como parametro. Segue o script final. function calculaPrazo(prazoAtendimento:Date) { var dataAtual = new Date(); var tempoRestante = (prazoAtendimento - dataAtual); var horas = Math.floor(tempoRestante/3600000); var minutos = Math.floor((tempoRestante%3600000)/60000); minutos = String(minutos % 60); if (minutos < 0) minutos = minutos * -1; return horas+":"+minutos; } Compartilhar este post Link para o post Compartilhar em outros sites