Ir para conteúdo

POWERED BY:

Arquivado

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

Naciones

[Resolvido] Cálculo de Idade

Recommended Posts

Boa tarde senhores !

 

Seguinte, andei dando uma olhada no código que vossos colegas tinham postado sobre Calcular Idade, cheguei a testar porém me retorna erro quando se tenta converter uma variavel na primeira linha do IF.

 

Não sei se alguém chegou a usar este código e viu o erro também, se conseguirem dar uma mão aí ... Obrigado mais uma vez a todos.

 

Segue abaixo:

 

<%
function idade(dataatual, datanascimento)
response.write("dataatual: "&dataatual)
response.write("<br>datanascimento: "&datanascimento) 'me retorna 
teste=(cint(mid(dataatual, 4, 2))) 'isso está retornando 4/ por isso que não consegue converter

if (cint(mid(dataatual, 4, 2)))>=(cint(mid(datanascimento, 4, 2))) then
  if (cint(mid(dataatual, 1, 2)))>=(cint(mid(datanascimento, 1, 2))) then
	 n1 = cint(mid(dataatual, 7, 4))
	 n2 = cint(mid(datanascimento, 7, 4))
	 idade = n1-n2
  else
	 n1 = cint(mid(dataatual, 7, 4))
	 n2 = cint(mid(datanascimento, 7, 4))
	 idade = n1-n2-1
  end if
else 
  n1 = cint(mid(dataatual, 7, 4))
  n2 = cint(mid(datanascimento, 7, 4))
  idade = n1-n2-1
end if
end function
%>
<%
Response.Write idade(Now, "22-08-1985")
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há sim...

 

nessa linha, troque isso:

<%
Response.Write idade(Now, "22-08-1985")
%>

por isso:

<%
Function ConverterData(ConData)
	ConData = Right("0"&Day(ConData),2) &"/"& Right("0"&Month(ConData),2) &"/"& Year(ConData)
	ConverterData = ConData
End Function

Response.Write " - idade: "&idade(ConverterData(Date), "22/08/1985")
%>

 

e resolve tudo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Criei um outro código para calcular idade...

function calculaIdade(dtnascimento,dtatual)
	dim idade
	idade = datediff("yyyy",dtnascimento,dtatual)
	if (clng(month(dtnascimento)) >= clng(month(dtatual))) and (clng(day(dtnascimento)) < clng(day(dtatual))) then
		idade = idade - 1
	end if
	calculaIdade = idade
end function
response.write calculaIdade("23-4-1990",now)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionaram ambas !

 

Gostaria de agradecer ao Ted 'k e ao hargon.

 

O que eu puder contribuir, por favor só chamar.

 

Abraços !

Compartilhar este post


Link para o post
Compartilhar em outros sites

100% massa hargon!

 

testei e tá legal!!!

 

que bonito é a simplificação

hehe quanto menos código melhor pra nós. ^_^

o amigo hargon está se destacando bem... boa man!!!

Vlw Ted k'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sei que este post já está resolvido, mas o código do Hargon estava com uma falha que humildemente vou tentar solucionar ok?

 

O código dele dizia que se o mês de nascimento fosse igual ou maior ao mês atual e se a data de nascimento fosse menor que a data atual, diminuia uma unidade da idade. Mas esse código falhava quando o mês era maior e a data tbm era maior.

 

Exemplo da falha:

Data atual = 12/09/2008

Data nascimento = 25/10/1985

 

O que acontecia? O mês era maior ou igual.. até aí tudo bem.. ele já diminuiria uma unidade da idade.. mas a data era maior, ou seja, ele nao diminuia a idade e dizia que a idade era de 23 anos, quando nao era verdade.

 

Abaixo vai a solução (não sou muito bom de montar lógicas, mas acho que essa deu certo).

 

function calculaIdade(dtnascimento,dtatual)
	dim idade
	idade = datediff("yyyy",dtnascimento,dtatual)
	if (clng(month(dtnascimento)) > clng(month(dtatual))) or ((clng(month(dtnascimento)) >= clng(month(dtatual))) and (clng(day(dtnascimento)) < clng(day(dtatual)))) then
		idade = idade - 1
	end if
	calculaIdade = idade
end function

coloquei o (clng(month(dtnascimento)) > clng(month(dtatual))), pois se o mês de nascimento for maior ele já retirará uma unidade da idade, independente do dia de nascimento. Daí ele tbm verifica a condição do Hargon. Acho que é isso. Se alguém ver alguma falha, avise aí. ;)

 

Obrigado.

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.