Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

andrerm

[Resolvido] Diferença de horas e minutos entre duas datas

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.