Ir para conteúdo

POWERED BY:

Arquivado

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

AndréMiranda

Cálculo de idade!

Recommended Posts

Olá pessoal!

 

Arrumei esse script e estou tentando adaptá-lo ao meu código, mas não consig de jeito nenhum... tem horas que dá erro de:

Tipos incompatíveis: 'cint'

 

A função está no começo da minha página e se eu coloco ela no meio, onde eu quero que exiba a idade, dá erro:

Erro de sintaxe

/usuario/admin.asp, line 563

function formatadata(data)

 

E o código todo é esse:

 

<%
dim dataatual, datanascimento, n1, n2

function formatadata(data)
dd = day(data)
mm = month(data)
aa = year(data)

if len(dd) = 1 then dd = "0" & dd
if len(mm) = 1 then mm = "0" & mm

formatadata = cstr(dd & "/" & mm & "/" & aa)
end function

function idade(dataatual, datanascimento)
if (cint(mid(dataatual, 4, 2)))>=(cint(mid(rs_usuarios("idade"), 4, 2))) then
  if (cint(mid(dataatual, 1, 2)))>=(cint(mid(rs_usuarios("idade"), 1, 2))) then
  n1 = cint(mid(dataatual, 7, 4))
  n2 = cint(mid(rs_usuarios("idade"), 7, 4))
  idade = n1-n2
  else
  n1 = cint(mid(dataatual, 7, 4))
  n2 = cint(mid(rs_usuarios("idade"), 7, 4))
  idade = n1-n2-1
  end if
else 
  n1 = cint(mid(dataatual, 7, 4))
  n2 = cint(mid(rs_usuarios("idade"), 7, 4))
  idade = n1-n2-1
end if

Response.Write idade
end function
call idade(formatadata(date),(rs_usuarios("idade")))
%>

A única diferença pro código original é que no lugar de "rs_usuarios("idade") é na verdade datanascimento, pois eu quero pegar a data de nascimento da pessoa no meu banco.

 

Por favor, será que alguém tem alguma idéia??

Abraços a todos!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

porque você quer calcular a idade se em rs_usuarios("idade") já tem a idade?

 

PS: o erro de cInt ocorre porque você não está enviando para função o segundo paramentro no formato data pois existe dentro dela a função mid que deve retornar algum valor inteiro

Compartilhar este post


Link para o post
Compartilhar em outros sites

johnatan,

 

o rs_usuarios("idade") na verdade não recebe a idade da pessoa... recebe a data de nascimento. Linga estória, mas enfim... o que entra no banco é algo como "27/10/77'... é isso que fica cadastro lá no BD.

 

Cara, não entendi muito bem a sua explicação... sorry!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Session LCID=1046
Function Idade(data) 
  Idade = Year(Now()) - Year(data) 

  iData = Day(data) &"/"& Month(data) &"/"& Year(Date()) 
  If DateDiff("d", Date(), iData) > 0 Then Idade = Idade -1
End Function

response.write(Idade(rs_usuarios("idade")))

ve se roda aew...

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

gUiTaR_mAn e johnatan,

 

valeu pelo help!

 

Consegui achar uma outra função aqui e tá funcionando legal:

 

<%
dia = day(now)
mes = month(now)
ano = year(now)
Data = CStr(dia) + "/" + CStr(mes) + "/" + CStr(ano)

idade = DateDiff("d",rs_usuarios("idade"),Data)\365
Response.Write idade 
%>

Dá um errinho qdo for ano bissexto, mas tá valendo!!

Resolvido!!

 

Abraços!!!

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.