none
Cálculo com Horas em ASP RRS feed

  • 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
    quinta-feira, 23 de junho de 2011 21:24

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
    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
    8783

    Espero ter ajudado,

    Abraços,

    Leandro Rodrigues



     


    Caso a resposta tenha ajudado, não esqueça de marcar como resposta válida
    quinta-feira, 23 de junho de 2011 23:14
  • Na verdade eu precisava disso em ASP
    Eder Pardeiro
    quinta-feira, 23 de junho de 2011 23:58
  • 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.
    sexta-feira, 24 de junho de 2011 12:39
  • 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
    sábado, 25 de junho de 2011 03:05
  • Não não Leandro...

    Preciso em ASP mesmo... só que o código que você passou é javascript...

    De qualquer forma, agradeço pela ajuda...

    Continuo no aguardo pessoal, se alguém souber como fazer em ASP.... (não é ASP.NET)


    Eder Pardeiro
    sábado, 25 de junho de 2011 11:31
  • E aí pessoal? Ninguém sabe fazer isso em ASP?
    Eder Pardeiro
    segunda-feira, 27 de junho de 2011 13:10
  • O seu horário inicial vem de uma base de dados?

    Se sim basta fazer um select na tabela comparando o seu horario armazenado com o now

    segunda-feira, 27 de junho de 2011 15:02
  • 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
    segunda-feira, 27 de junho de 2011 16:13
  • 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
    segunda-feira, 27 de junho de 2011 16:40