Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola amigos estou com uma duvida aqui. Se puderem me ajudar eu agradeço.
Tenho um MaskEdBox “##/##/####” que registra a data de nascimento. Ai preciso bolar um código que calcule a idade dele. A idéia é calcular a idade dele levando em conta se ele fez ou não aniversario neste ano. Encontrei este código mas ele trava. Coloquei o código dentro do MaskEdBox1_Change, mas ele trava quando recebe um valor incompleto.
Exe: “1_/__/____”
Dim DatNasc As Date, Idade As Integer
DatNasc = MaskEdBox1.Text
TextIdade.Text = Int(DateDiff("m", DatNasc, Date) / 12)
data valida? nao sei o que é isto!
Seria um IF?
Tipo assim if MaskEdBox <> “__/__/____” then
If IsDate("01/05/2009") Then
'valida
Else
'nao valida
End If
Tentei assim e nada. A idéia é saber se o valor do Text1 é uma data como “11/10/1900” se não, não deve entrar no IF.
If IsDate(Text1.Text) Then
a = b
End If
>
Tentei assim e nada. A idéia é saber se o valor do Text1 é uma data como “11/10/1900” se não, não deve entrar no IF.
If IsDate(Text1.Text) Then
a = b
End If
Mas é isso que essa função faz! Valida a data em DD/MM/YYYY, MM/DD/YYYY, YYYYMMDD
Não deu? Que que aconteceu? Deu erro? Não consigo adivinha http://forum.imasters.com.br/public/style_emoticons/default/sick.gif
Desculpe scorpio ele estava dando erro nesta linha.
If IsDate(Text1.Text) Then
Mas agora ele passou pelo erro sem problema.
Obrigado.
If IsDate(TextDadaNascimento.Text) Then
DatNasc = MaskEdBox1.Text
TextIdade.Text = Int(DateDiff("m", DatNasc, Date) / 12)
End If
Desculpe se estou abrindo um tópico já fechado.
Como posso fazer com que o programa calcule qual data é mais antiga?
Exemplo:
09/3/2003 ‘<- o programa tem que reconhecer que esta data é mais antiga do que a segunda.
10/12/2007
Dês de já obrigado.
Não estou com VB em mãos, mas se comparar uma data com a outra não consegue o resultado que precisa?
if "01/05/2005" > "03/09/2006" then
'data 1 é maior
else
'data 2 é maior
end if
Se isso não der certo, faça o datediff para as duas contando a partir da data atual e depois compare os dois resultados.
data1 = datediff("d","01/05/2009", date)
data2 = datediff("d"03/09/2006", date)
if data1 > data2 then
'data 1 é maior
else
'data 2 é maior
end if
Cláudio o primeiro código não funciona, mas o segundo resolveu.
Obrigado.
Dim Caldata1 As String
Dim Caldata2 As String
Caldata1 = MaskEdBox1
Caldata2 = MaskEdBox2
Caldata1 = DateDiff("d", Caldata1, Date)
Caldata2 = DateDiff("d", Caldata2, Date)
If Caldata1 > Caldata2 Then
Text3.Text = "o primeiro é mais antigo"
Else
Text3.Text = "o segundo é mais antigo"
End If
Com o promeiro, faça assim:
if #01/05/2005# > #03/09/2006# then
'data 1 é maior
else
'data 2 é maior
end if
Porque a ”#” o que ele faz?
E qual a diferença entre os códigos que o Cláudio postou?
é para informar que esta trabalhando com data, antes era como se fosse texto
tentou verificar se o campo está vazio/com data valida antes de fazer a conta ?