Ir para conteúdo

POWERED BY:

Arquivado

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

Mário Monteiro

Calculo de Idade - Retorno no formato: X ano(s) e Y mes(es) e Z dia(s)

Recommended Posts

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")

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.