Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Erich VB

[Resolvido] Calculando idade

Recommended Posts

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)

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentou verificar se o campo está vazio/com data valida antes de fazer a conta ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

If IsDate("01/05/2009") Then

'valida

Else

'nao valida

End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com o promeiro, faça assim:

if #01/05/2005# > #03/09/2006# then
  'data 1 é maior
else
  'data 2 é maior
end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

é para informar que esta trabalhando com data, antes era como se fosse texto

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.