Public Function CalculaIdade(ByVal dDataNasc As Date, Optional ByVal dDataHoje As Date = Nothing) As String
Dim cResult As String = ""
If dDataHoje = Nothing Then
dDataHoje = Today
End If
If dDataNasc <> Nothing AndAlso dDataNasc <= dDataHoje Then
Dim dDataTemp = dDataNasc
Dim anos = DateDiff("yyyy", dDataTemp, dDataHoje)
dDataTemp = dDataTemp.AddYears(anos)
Dim meses = DateDiff("m", dDataTemp, dDataHoje)
If meses < 0 Then
anos = anos - 1
dDataTemp = dDataTemp.AddYears(-1)
meses = DateDiff("m", dDataTemp, dDataHoje)
End If
dDataTemp = dDataTemp.AddMonths(meses)
Dim dias = DateDiff("d", dDataTemp, dDataHoje)
If dias < 0 Then
meses = meses - 1
If meses < 0 Then
anos = anos - 1
meses = 12 + meses
End If
dDataTemp = dDataTemp.AddMonths(-1)
dias = DateDiff("d", dDataTemp, dDataHoje)
End If
If anos <> 0 Then
cResult = cResult & anos & IIf(anos = 1, " ano", " anos")
End If
If anos < 18 Then
If meses <> 0 Then
cResult = cResult & IIf(cResult.Length = 0, "", ", ") & meses & IIf(meses = 1, " mes", " meses")
End If
If anos <= 2 Then
If dias <> 0 Then
cResult = cResult & IIf(cResult.Length = 0, "", " e ") & dias & IIf(dias = 1, " dia", " dias")
End If
End If
End If
End If
Return cResult
End Function
the problem is in the line where the maskedbox is.
– Moisés Ramos