Colega, para você existe uma solução simples, uma função de aniversário
cole este código em um Módulo:
Public Function CalcularIdade(DTNasc As Date) As String
Dim Anos As Single, Meses As String, Dias As Single
Dim UTDTNasc As Date
If Month(DTNasc) <= Month(Date) Then
If Month(DTNasc) <> Month(Date) Then
UTDTNasc = Day(DTNasc) & "/" & Month(DTNasc) & "/" & Year(Format(Date, "dd/mm/yyyy"))
Else
If Day(DTNasc) <= Day(Date) Then
UTDTNasc = Day(DTNasc) & "/" & Month(DTNasc) & "/" & Year(Format(Date, "dd/mm/yyyy"))
Else
GoTo NPassou
End If
End If
Else
NPassou:
UTDTNasc = Day(DTNasc) & "/" & Month(DTNasc) & "/" & Year(Format(Date, "dd/mm/yyyy")) - 1
End If
Anos = DateDiff("yyyy", DTNasc, UTDTNasc)
Meses = DateDiff("m", UTDTNasc, Date)
If Day(Date) < Day(UTDTNasc) Then
Meses = Meses - 1
Dias = DateDiff("d", DateAdd("m", -1, Day(DTNasc) & "/" & Month(Date) & "/" & Year(Format(Date, "dd/mm/yyyy"))), Date)
ElseIf Day(Date) = Day(UTDTNasc) Then
Dias = 0
ElseIf Day(Date) > Day(UTDTNasc) Then
Dias = DateDiff("d", Day(DTNasc) & "/" & Month(Date) & "/" & Year(Format(Date, "dd/mm/yyyy")), Date)
End If
CalcularIdade = Anos & " Ano(s) " & Meses & " Mês(es) " & Dias & " Dia(s)"
End Function
para testar faça isto:
text1.text=CalcularIdade(01/08/1958)
e pronto eis a sua resposta
49 Ano(s) 5 Mês(es) 10 Dia(s)
e é isso adapte em programa e pronto
lembrando que a data é a data inicial da pena
valeu até