• 0
Sign in to follow this  
Raposo

Calcular Idade

Question

Bom dia

Tenho um coódigo para calcular a idade de uma pessoa através da data de aniversário, porém este é um prompt e eu gostaria de fazer a mesma coisa só que em um form, onde eu teria um campo "data de nascimento" e outro campo "idade". Sendo que assim que eu acabasse de preencher a data de nascimento, automaticamento no campo idade aparece, qtos anos o usuário tem.

Minha dúvida está em reformular este script para a mesma passar as informações ?

Segue o código :

<script language="JavaScript">

dia=prompt("Digite o dia que você nasceu:","");

while(dia==null || dia>31 || dia <1){

dia=prompt("Digite o dia que você nasceu:","");

}

mes=prompt("Digite o mes que você nasceu:","");

while(mes==null || mes>12 || mes <1){

mes=prompt("Digite o mes que você nasceu:","");

}

ano=prompt("Digite o ano que você nasceu:","");

while(ano==null){

ano=prompt("Digite o ano que você nasceu:","");

}

hoje= new Date();

dia_hoje=hoje.getDate();

mes_hoje=hoje.getMonth()+1;

ano_hoje=hoje.getYear();

diferenca_dia=dia_hoje-dia;

diferenca_mes=mes_hoje-mes;

diferenca_ano=ano_hoje-ano;

//alert(diferenca_dia+" "+diferenca_mes+" Ano = "+diferenca_ano+" ")

if(diferenca_dia<0){

diferenca_dia=30+diferenca_dia;

diferenca_mes--;

} else if(diferenca_mes<0) {

diferenca_mes=12+diferenca_mes;

diferenca_ano--;

} else {

alert("Esta data ainda não chegou!!!")

}

alert("Voce tem "+diferenca_ano+" anos "+diferenca_mes+" meses "+diferenca_dia+" dias");

</script>

<form name="form1" method="post" action="">

<input name="data" type="text" id="data">

<input name="idade" type="text" id="idade">

</form>

Muito Obrigado

Share this post


Link to post
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Parabéns, bem legal esse código!

Ele apenas possui alguns bugs, mas ta valendo.

Quanto a sua duvida, coloque o seu script em outra página.

falou.

Share this post


Link to post
Share on other sites
  • 0

você coloca seu script em outra página e altera o form, assim:

<form action="pagina2.html">

falou.

Share this post


Link to post
Share on other sites
  • 0

Orlando obrigado pela resposta....

Mais o que eu necessito mesmo é o seguinte :

Eu tenho um form no qual tenho dois campos "data de nascimento" e "idade"

e o que estou tentando fazer é quando o usuário coloca sua a data de nascimento automaticamente aparece quantos anos ele possui em idade.

Eu tenho este Script que enviei que ele abre um prompt, porém não quero que ele abra o prompt e sim que ele me passe os valores nos campos.....

Tentei algumas formas porém não estou conseguindo transformar o form.

Vlw !

Share this post


Link to post
Share on other sites
  • 0

Cara te aconselho a fazer isso pegando a data do servidor com alguma linguagem dinâmica porque se o cara tiver com o relógio errado a tua verificação estará errada.

Quanto a tua dúvida tu pode tirar a parte q tem os prompts e criar uma nova data apartir do q o cara informou na tela. Dae você criar as variaveis dia mes ano. Tenta fazer qualquer coisa posta ae...

Abraço

Share this post


Link to post
Share on other sites
  • 0

Raposo, retire os prompts e adicione os inputs-texto.

Obs: Adicione um button com o parâmetro onclick e coloque como valor a última linha do seu código js transformando-o em texto.

falou.

Share this post


Link to post
Share on other sites
  • 0
Desculpe minha ignorancia, mais não seria masi facil ele faze function???

Com certeza seria mais fácil ele fazer uma function e chama-la no onclick de um botão, acredito até q para ele fazer isso ele vai ter q criar uma function do contrário não funcionará, mas acredito q ele já tenha resolvido o problema pois não postou mais...

Abraço

Share this post


Link to post
Share on other sites
  • 0

como prometido! ta ae...

desculpa a demora... mas é que ontem eu tava realmente atolado de coisas... e eu n tive tempo de responder no trab ontem... e em casa to sem internet!!!

seu code ta ae...:

<html>
	<script language="javascript">
	function Calcula()
	{
  data = new Date();
  dia = data.getUTCDay(); if(dia < 10){dia = "0" + dia;}
  mes = data.getUTCMonth(); if(mes < 10){mes = "0" + mes;}
  ano = data.getUTCFullYear();
  
  AnoHoje = ano;
  AnodataNascimento = txtAno.value;

  Idade = parseInt(AnoHoje) - parseInt(AnodataNascimento);
  
  if(txtMes.value >= mes)
  {
  	if(txtDia.value >= dia)
  	{
    Idade--;
  	}
  }

  //alert(Idade);
  txtIdade.value = Idade;
	}
	</script>
	<body>
  Data Nascimento: <input type="text" ID="txtDia" size="2" maxlength="2">/<input type="text" ID="txtMes" size="2" maxlength="2">/<input type="text" ID="txtAno" size="4" maxlength="4">
  <br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Idade: <input type="text" readonly id="txtIdade">
  <br><br>
  <input type="button" value="Calcula" onclick="Calcula();">
	</body>
</html>

abraço

Share this post


Link to post
Share on other sites
  • 0

Ai galera era exatamente isso que eu precisa, eu acabei conseguindo

alterando meu code.

O que eu to atrás agora é como eu não utilizo o botão (onclick), ou seja

ao dar o tab no campo data de nascimeto a idade já é calculada, pois

eu vou enviar isso por e-mail.

Eu estou tentando assim que eu conseguir eu remeto a resposta !

Muito Obrigado a todos pelas respostas !

Abc !!!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this