Usuário com melhor resposta
Cálculo com Horas em ASP

Pergunta
-
Boa tarde Pessoal,
Já procurei no Sr. Google, em outros fóruns e aqui nas sugestões do fórum, mas não encontei nada que possa resolver meu problema.
Preciso saber se já se passaram 48 horas a partir de um horário.
Fico no aguardo
Eder Pardeiro
Respostas
-
Pessoal... consegui....
<% DATA1 = "25/06/2011 14:35:00" 'DATA QUE VEM DO BANCO DATA2 = Cdate(now()) 'DATA ATUAL DIAS = DateDiff("d",DATA1,DATA2) If DateDiff("h",DATA1,DATA2) <> 0 Then HORA = DateDiff("h",DATA1,DATA2) - Cint(DIAS) * 24 Else HORA = 0 End If If DateDiff("n",DATA1,DATA2) <> 0 Then MINUTO = DateDiff("n",DATA1,DATA2) - DateDiff("h",DATA1,DATA2) * 60 Else MINUTO = 0 End If If DateDiff("s",DATA1,DATA2) <> 0 Then SEGUNDO = DateDiff("s",DATA1,DATA2) - DateDiff("n",DATA1,DATA2) * 60 Else SEGUNDO = 0 End If If SEGUNDO < 0 Then MINUTO = MINUTO - 1 SEGUNDO = 60 - SEGUNDO + SEGUNDO * 2 End If If MINUTO < 0 Then HORA = HORA - 1 MINUTO = 60 - MINUTO + MINUTO * 2 End If If HORA < 0 Then DIAS = DIAS - 1 HORA = 24 - HORA + HORA * 2 End If If DIAS > 1 Then Response.Write "<font color=#003366 class=fontsize>" & DIAS & "d " & HORA & "h </font>" ElseIf DIAS = 1 Then Response.Write "<font color=#FF0000 class=fontsize>" & DIAS & "d " & HORA & "h </font>" ElseIf DIAS = 0 AND HORA > 0 Then Response.Write "<font color=#FF0000 class=fontsize>" & HORA & "h " & MINUTO & "m </font>" ElseIf DIAS = 0 AND HORA = 0 AND SEGUNDO > 1 Then Response.Write "<font color=#FF0000 class=fontsize>" & MINUTO & "m " & SEGUNDO & "s </font>" End If %>
Fonte: http://forum.imasters.com.br/topic/437129-calculo-de-horas-em-asp/
Se alguém tiver uma sugestão melhor...
Obrigado....
Eder Pardeiro- Marcado como Resposta Eder Pardeiro segunda-feira, 27 de junho de 2011 16:40
Todas as Respostas
-
Eder,
Usa a função :-
<script type="text/vbscript">
fromDate="31-Jan-09 00:00:00"
toDate="31-Jan-10 23:59:00"
Pega dia ( se for maior que ou igual a 2 dias então foram 48 horas.
document.write(DateDiff("d",fromDate,toDate) & "<br />")
E ai pega por hora mesmo
document.write(DateDiff("h",fromDate,toDate) & "<br />")
</script>Para esse exemplo a saída é:-
365
8783Espero ter ajudado,
Abraços,
Leandro Rodrigues
Caso a resposta tenha ajudado, não esqueça de marcar como resposta válida -
-
Eder segue um simples exemplo mais que pode te dar uma luz de como fazer, lembrando que é um simples exemplo e deve ser otimizado/melhorado:
protected void Page_Load(object sender, EventArgs e) { //exibo o total de horas da diferença //entre as datas em um label lblResultado.Text = CalcularHoras(DateTime.Now, Convert.ToDateTime("23/06/2011,00:00:00")).ToString(); } //método privado que retorna um valor inteiro //que seria a diferença do numero de horas //entre as duas datas que são passadas no parâmetro private int CalcularHoras(DateTime dataInicial, DateTime DataFinal) { //instância do timespan e o método que subtrai //duas datas TimeSpan resultado = dataInicial.Subtract(DataFinal); //aqui retorno o total de horas da diferença //entre as datas return Convert.ToInt32(resultado.TotalHours); }
Dê uma olhada no link o mesmo contém todas as propriedades, métodos, etc.:
http://msdn.microsoft.com/en-us/library/system.timespan.aspx
Abraços e espero ter ajudado!
Estudar, Estudar e Estudar! Não existe caminho curto. -
Eder,
Eu pensei que fosse ASP mesmo, mais pelo jeito você precisa em ASP.NET ai fica mais fácil, olha o que nosso amigo postou que isso deve ter ajudar,
Abraços,
Leandro Rodrigues
Caso a resposta tenha ajudado, não esqueça de marcar como resposta válida -
-
-
-
O horário está no banco sim...
Preciso destacar o registro caso ele tenha sido inserido há menos de 48 horas. Se eu fizer por select, o que vou conseguir é retornar apenas os registros deste intervalo e na verdade não é isso que eu quero.... quero buscar TODOS, mas destacar os com menos de 48 horas de insersão....
Me corrija se eu estiver errado, mas acredito que por esse motivo, não seja possível fazer através do select.
Continuo no aguardo...
Eder Pardeiro -
Pessoal... consegui....
<% DATA1 = "25/06/2011 14:35:00" 'DATA QUE VEM DO BANCO DATA2 = Cdate(now()) 'DATA ATUAL DIAS = DateDiff("d",DATA1,DATA2) If DateDiff("h",DATA1,DATA2) <> 0 Then HORA = DateDiff("h",DATA1,DATA2) - Cint(DIAS) * 24 Else HORA = 0 End If If DateDiff("n",DATA1,DATA2) <> 0 Then MINUTO = DateDiff("n",DATA1,DATA2) - DateDiff("h",DATA1,DATA2) * 60 Else MINUTO = 0 End If If DateDiff("s",DATA1,DATA2) <> 0 Then SEGUNDO = DateDiff("s",DATA1,DATA2) - DateDiff("n",DATA1,DATA2) * 60 Else SEGUNDO = 0 End If If SEGUNDO < 0 Then MINUTO = MINUTO - 1 SEGUNDO = 60 - SEGUNDO + SEGUNDO * 2 End If If MINUTO < 0 Then HORA = HORA - 1 MINUTO = 60 - MINUTO + MINUTO * 2 End If If HORA < 0 Then DIAS = DIAS - 1 HORA = 24 - HORA + HORA * 2 End If If DIAS > 1 Then Response.Write "<font color=#003366 class=fontsize>" & DIAS & "d " & HORA & "h </font>" ElseIf DIAS = 1 Then Response.Write "<font color=#FF0000 class=fontsize>" & DIAS & "d " & HORA & "h </font>" ElseIf DIAS = 0 AND HORA > 0 Then Response.Write "<font color=#FF0000 class=fontsize>" & HORA & "h " & MINUTO & "m </font>" ElseIf DIAS = 0 AND HORA = 0 AND SEGUNDO > 1 Then Response.Write "<font color=#FF0000 class=fontsize>" & MINUTO & "m " & SEGUNDO & "s </font>" End If %>
Fonte: http://forum.imasters.com.br/topic/437129-calculo-de-horas-em-asp/
Se alguém tiver uma sugestão melhor...
Obrigado....
Eder Pardeiro- Marcado como Resposta Eder Pardeiro segunda-feira, 27 de junho de 2011 16:40