relógio em VB express 2005

sacez

Membro
Boa tarde sou novo na programação e tou com dificuldade em programar um relógio.
Já consegui acertar a hora com o PC, mas como é que faço para ter as horas os minutos eos segundos em duas casas décimais, ou seja em vez de 1:1:1 seg. ter 01:01:01 e tou a trabalhar com três Label's
Agradecia ajuda para a configuração:004:
 
Boa tarde sou novo na programação e tou com dificuldade em programar um relógio.
Já consegui acertar a hora com o PC, mas como é que faço para ter as horas os minutos eos segundos em duas casas décimais, ou seja em vez de 1:1:1 seg. ter 01:01:01 e tou a trabalhar com três Label's
Agradecia ajuda para a configuração:004:
Código:
Label1.Text = IIf(Now.Hour.ToString.Length = 2, Now.Hour.ToString, "0" & Now.Hour.ToString)
Label2.Text = IIf(Now.Minute.ToString.Length = 2, Now.Minute.ToString, "0" & Now.Minute.ToString)
Label3.Text = IIf(Now.Second.ToString.Length = 2, Now.Second.ToString, "0" & Now.Second.ToString)
 
Uma alternativa que não sei como funciona em .NET é como eu usava em VB6:

Código:
Private Function MaisDigitos(Quantos As Integer, Numero As String) As String
  MaisDigitos = String(Quantos - Len(Numero), "0") & Numero
End Function
Não está testado, mas há-de ser qualquer coisa assim, que funciona com uma chamada do género
Código:
Msgbox MaisDigitos(2, "1")

De uma forma geral, "acrescenta tantos zeros quantos forem necessários à esquerda de um número de modo a que este perfaça 2 caracteres".

Vou experimentar fazer isso em VB 2005 e já digo qualquer coisa...

edit - à procura de um equivalente ao String(), no Google, encontrei algo ainda melhor:

Código:
Label1.Text = Now.Hour.ToString.PadLeft(2, "0")
Label2.Text = Now.Minute.ToString.PadLeft(2, "0")
Label3.Text = Now.Second.ToString.PadLeft(2, "0")

:D
 
Última edição:
Uma alternativa que não sei como funciona em .NET é como eu usava em VB6:

Código:
Private Function MaisDigitos(Quantos As Integer, Numero As String) As String
  MaisDigitos = String(Quantos - Len(Numero), "0") & Numero
End Function
Não está testado, mas há-de ser qualquer coisa assim, que funciona com uma chamada do género
Código:
Msgbox MaisDigitos(2, "1")

De uma forma geral, "acrescenta tantos zeros quantos forem necessários à esquerda de um número de modo a que este perfaça 2 caracteres".

Vou experimentar fazer isso em VB 2005 e já digo qualquer coisa...

edit - à procura de um equivalente ao String(), no Google, encontrei algo ainda melhor:

Código:
Label1.Text = Now.Hour.ToString.PadLeft(2, "0")
Label2.Text = Now.Minute.ToString.PadLeft(2, "0")
Label3.Text = Now.Second.ToString.PadLeft(2, "0")

:D

Sim Kayvlim, tambem funciona só é necessário acrescentar a keyword New
Código:
    Private Function MaisDigitos(ByVal Quantos As Integer, ByVal Numero As String) As String
        Return New String("0", Quantos - Len(Numero)) & Numero
    End Function

Nunca reparei.. o VB.NET tem muitas coisas novas :)
....ToString.PadLeft(2, "0")
 
Back
Topo