Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Esta sub que pode ser transformada em function facilmente retorna a idade a partir de uma data passada
Se alguma grandeza (ano, mes ou dia) for zerada ele a exclui do resultado e nao mostra 0 anos ou 0 meses ou 0 dias, so mostrar se for maior de zero
Se tanto fizer vir esta informação zerada da para dar uma boa resumida nos ifs que geram o retorno
Espero que ajude
Abraços
Mário Monteiro
Sub Tempo(Valor)
Data = CDate(Valor)
Anos = DateDiff("yyyy", Data, Now)
If Date < CDate(Day(Data) & "/" & Month(Data) & "/" & Year(Now)) Then
Anos = Anos - 1
End If
Meses = DateDiff("m", Data, Now)
If Date >= CDate("1/" & Month(Now) & "/" & Year(Now)) And Date < CDate(Day(Data) & "/" & Month(Now) & "/" & Year(Now)) Then
Meses = Meses - 1
End If
While Meses >= 12
Meses = Meses - 12
Wend
Dias = Day(Now) - Day(Data)
If Dias < 0 Then
Dias = Dias + Day(DateAdd("d", -1, "01/" & Month(Now) & "/" & Year(Now)))
End If
TEXTO = ""
If Anos > 0 Then
TEXTO = TEXTO & Anos & "Ano(s)"
End If
If Anos > 0 And (Meses > 0 Or Dias > 0) Then
TEXTO = TEXTO & " e "
End If
If Meses > 0 Then
TEXTO = TEXTO & Meses & "Mes(es)"
End If
If (Anos > 0 Or Meses > 0) And Dias > 0 Then
TEXTO = TEXTO & " e "
End If
If Dias > 0 Then
TEXTO = TEXTO & Dias & "Dia(s)"
End If
Response.Write(TEXTO)
End Sub
Para chamar
Call Tempo("11/10/1981")
Carregando comentários...