none
Formato de horas RRS feed

  • Pergunta

  • Boa tarde

    Pessoal fiz uma funçao em vb.net para formatar horas, funciona bem, tentei converter para c# mas não rolo, alguém pode me ajudar?

    Essa é em vb.net:

    Public Function hora() As String
            Dim horaAtual As DateTime = DateTime.Now
            Dim horaFormatada As String = Format(horaAtual, "HH:mm:ss")
    
            Return horaFormatada.ToString
        End Function

    Essa é a que tentei fazer em C# mas não funciona:

    public string hora()
            {
                DateTime horaAtual = DateTime.Now;
                string horaFormatada = Format(horaAtual, "HH:mm:ss");
    
                return horaFormatada.ToString();
            }


    segunda-feira, 8 de abril de 2013 16:15

Respostas

  • Olá Alexandre...

    Se você está falando de horário , ou seja, hora de 0 a 23... faça o seguinte...

    return horaPrincipal.ToString("HH:mm:ss");

    agora se você está falando sobre quantidade de horas de um determinado periodo use o tipo TimeSpan e use o comando abaixo
    (Muito parecido com o que você ja colocou no exemplo em VB)

    Text = string.Format("{0}:{1}:{2}", Convert.ToInt64(horaPrincipal.TotalHours), horaPrincipal.Minutes, horaPrincipal.Seconds);

    Abraço!!!

    Se ajudou não esquece de marcar como resposta blz!?!?!?! ;)

    • Marcado como Resposta Alexandre CCarmo segunda-feira, 8 de abril de 2013 16:56
    segunda-feira, 8 de abril de 2013 16:48
  • Olá Alexandre,

    Formatar um DateTime é bem simples...

    Use:

    DateTime dt = new DateTime();
    string DataFormadata = dt.ToString("dd/MM/yyyy HH:mm:ss"); // geral 08/04/2013 13:19:59

    Abraço!!!

    • Marcado como Resposta Alexandre CCarmo segunda-feira, 8 de abril de 2013 16:56
    segunda-feira, 8 de abril de 2013 16:19

Todas as Respostas

  • Olá Alexandre,

    Formatar um DateTime é bem simples...

    Use:

    DateTime dt = new DateTime();
    string DataFormadata = dt.ToString("dd/MM/yyyy HH:mm:ss"); // geral 08/04/2013 13:19:59

    Abraço!!!

    • Marcado como Resposta Alexandre CCarmo segunda-feira, 8 de abril de 2013 16:56
    segunda-feira, 8 de abril de 2013 16:19
  • Opa blz.

    entendi obrigado.

    Aproveitando o comentário, como ficaria a conversão da linha abaixo:

    Return String.Format("{0}:{1}:{2}", Int(horaPrincipal.TotalHours), (horaPrincipal.Minutes), (horaPrincipal.Seconds.ToString("00")))

    segunda-feira, 8 de abril de 2013 16:25
  • Alexandre,

    O formato que você citou acima não é possível representar com algo no método ToString(), veja esta lista com formatos disponíveis:

    http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

    A maneira que você fez acima esta correta, nenhum dos padrões que usam "HH" vai retornar hora maior que 24.

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    segunda-feira, 8 de abril de 2013 16:34
  • Olá Alexandre...

    Se você está falando de horário , ou seja, hora de 0 a 23... faça o seguinte...

    return horaPrincipal.ToString("HH:mm:ss");

    agora se você está falando sobre quantidade de horas de um determinado periodo use o tipo TimeSpan e use o comando abaixo
    (Muito parecido com o que você ja colocou no exemplo em VB)

    Text = string.Format("{0}:{1}:{2}", Convert.ToInt64(horaPrincipal.TotalHours), horaPrincipal.Minutes, horaPrincipal.Seconds);

    Abraço!!!

    Se ajudou não esquece de marcar como resposta blz!?!?!?! ;)

    • Marcado como Resposta Alexandre CCarmo segunda-feira, 8 de abril de 2013 16:56
    segunda-feira, 8 de abril de 2013 16:48
  • Boa tarde

    Fabio funcionou, obrigado, usei os 2 casos que você informou precisei de ambos.

    segunda-feira, 8 de abril de 2013 16:56