Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida Com Formatação De Hora...


MadPatryk

Pergunta

galera, eu to com uma duvida!

eu tenho um code de formatar hora, mas só to sabendo como formatar a hora e os minutos.... como faço para formatar os segundos também? mas no jeito de como segue meu codigo, tipo, que a finalidade é subtrair horas...

tai galera :

  Hora = FormatDateTime(Now(),4) 
  HoraMaisUm = Left(Hora,2) + 1
  HoraMaisUm = HoraMaisUm & Right(Hora,3)
  Response.Write(Hora & "<BR>" & HoraMaisUm)

  H_Hora = Hour(Hora) 
  M_Hora = Minute(Hora)
  S_Hora = Second(Hora)
  H_HoraMaisUm = Hour(HoraMaisUm) 
  M_HoraMaisUm = Minute(HoraMaisUm)
  S_HoraMaisUm = Second(HoraMaisUm) 

  TotalMin = M_HoraMaisUm - M_Hora
  TotalHor = H_HoraMaisUm - H_Hora
  TotalSec = S_HoraMaisUm - S_Hora 
  
  If TotalHor < 10 Then
  	TotalHor = "0" & TotalHor
  End If

  If TotalMin < 10 Then
  	TotalMin = "0" & TotalMin
  End If
  
  If TotalSec < 10 Then
  	TotalSec = "0" & TotalSec
  End If

  Response.Write("<BR><BR>Diferença entre os dois: ")
  Response.Write(TotalHor & ":" & TotalMin & ":" & TotalSec) 

só keria que ele me mostrasse os minutos também!!!!

valeus!

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

Não entendi bem o seu código, mas porque você não faz simplesmente...

TotalMin = Format(Val(TotalMin), "00")

... para formatar, ao invés de verificar se é menor que 10 e concatenar um zero na frente?

E o que você quer exatamente? Calcular o período de tempo entre dois horários distintos e mostrá-lo no formato hh:mm:ss?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

hum hum hehe

tipo cara, eu keria fazer o seguinte...

do mesmo jeito que fiz neste algoritimo...

uma função que, 1°, ao inserir os dados do user no banco, eu quero que grave a hora em que ele se registrou + 1... e tipo, na tela principal, eu keria fazer com que contasse o tempo dele regressivamente... como?

subtraindo a hora em que ele entrou(somada com +1) pela hora atual...

tipo, o user registrou-se agora, (23:24:00) dai eu registro a hora dele +1 que da 24:24:00... dai eu subtraio pela hora atual tipo 24:24:00 - 23:24:00 ou seja, falta ainda 1 hora pro tempo dele acabar... e eqto o site ir dando os refreshes, o tempo vai estar contando na tela...

sacarou velho?!

me ajudaram ai, só que só conseguiram me ajudar com a hora e com os minutos, mas eu keria com os segundos também...

é isso!

valeus!

Link para o comentário
Compartilhar em outros sites

  • 0

Ah, então a coisa é mais simples do você que imagina. biggrin.gif . A .NET já tem tipos e funções próprios para lidar com tempo e com cálculos de tempo. Veja o exemplo abaixo:

        Dim inicial As DateTime = Now()  'Hora atual
        Dim final As DateTime = inicial.AddHours(1) 'Acrescenta 1 hora à hora atual
        MsgBox(inicial.ToString())
        MsgBox(final.ToString())
        Dim diferença As TimeSpan = final.Subtract(inicial) 'Calcula a diferença (subtraindo) entre o tempo final e inicial
        MsgBox(diferença.ToString())

O código acima já faz tudo que você precisa. Basta agora adaptar ao seu caso (colocando em um Timer, por exemplo, para poder ir atualizando na tela automaticamente). wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Não entendi uma coisa. Isso é VB.Net?

Porque você não usa os métodos do tipo DateTime?

DateTime.Parse() pode transformar qualquer string em qualquer formato pra DateTime

Tem os metodos AddHour, AddMinute e etc pra trabalhar com eles, o tipo TimeSpan serve pra representar intervalos de tempo...

E por ultimo, pra formatar usa o metodo ToString() do datetime po..

data.ToString("dd-MM-yyyy hh:mm:ss")

simples...

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0

Sim, você pode utilizar o parâmetro para formatar no método ToString(), como o Natan disse, ou utilizar a propriedade TimeOfDay para retornar somente a hora. No caso, ficaria, em ambos os modos:

        MsgBox(inicial.ToString("hh:mm:ss"))
        MsgBox(final.TimeOfDay.ToString())

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

ah sim, uma coisa que eu não intendi...

é que no meu server, não ta interpretando o msgbox não... dai eu tenho que por em response.write...

ele retorna esse erro aki:

It is invalid to show a modal dialog or form when the application is not running in UserInteractive mode. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application. 

prq?

valeus!

Link para o comentário
Compartilhar em outros sites

  • 0

e outra duvida gente...

tipo, eu agora fiz pra ke esse fim, conta como se fosse uma string...

tipo, eu fiz...

now() que é agora 20:02:03

e o fim, eu transformei em string assim:

fim as string = "21:00:00" (que é o tempo final do cara em string)...

mas deu erro...

como posso fazer isso?

eu preciso que seja em string, prq eu vou pegar essa variavel do banco de dados...

valeus!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...