Usuário:Diogo-Sergio-N256/Calculadora de idade.js

Origem: Wikipédia, a enciclopédia livre.

Nota: Depois de publicar, poderá ter de contornar a cache do seu navegador para ver as alterações.

  • Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
  • Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
  • Internet Explorer / Edge: Pressione Ctrl enquanto clica Recarregar, ou pressione Ctrl-F5
  • Opera: Pressione Ctrl-F5.
function start() {
document.form1.day.value=""
document.form1.month.value=""
document.form1.year.value=""
document.form1.age.value=""
document.form1.months.value=""
document.form1.weeks.value=""
document.form1.answer.value=""
document.form1.hours.value=""
document.form1.min.value=""
document.form1.sec.value=""
document.form1.bday.value=""
document.form1.milli.value=""
}
/*function TestRun(){
alert('works!!!!!');
}*/
function leapyear(a) {
if(((a%4==0)&&(a%100!=0))||(a%400==0)) return true
else 
return false
}
function go(StoredAge) {
mm=parseInt(mm)
dd=parseInt(dd)
yy=parseInt(yy)
if ((mm<1) || (mm>12) || (dd<1) || (dd>31) || (yy<1) ||(mm==" ") || (dd==" ") || (yy==" "))  main="Invalid" 
else 
if (((mm==4) || (mm==6) || (mm==9) || (mm==11)) && (dd>30)) main="Invalid"
else if (mm==2) {
if (dd>29)main="Invalid" 
else if((dd>28) && (!lyear(yy)))   main="Invalid"
}
else main=main
if(main=="valid") {
var m
if (mm==1) n=31+1
if (mm==2)
{ n=59+1}
if (mm==3)  n=90+1//;  if (lyear(yy)) n=n+1; }
if (mm==4)  n=120+1//  if (lyear(yy)) n=n+1; }
if (mm==5)  n=151+1// ; if (lyear(yy)) n=n+1; }
if (mm==6)  n=181+1//;  if (lyear(yy)) n=n+1; }
if (mm==7)  n=212+1// ; if (lyear(yy)) n=n+1; }
if (mm==8)  n=243+1//  ;if (lyear(yy)) n=n+1; }
if (mm==9)  n=273+1//;  if (lyear(yy)) n=n+1; }
if (mm==10)  n=304+1//;  if (lyear(yy)) n=n+1; }
if (mm==11)  n=334+1//;  if (lyear(yy)) n=n+1; }
if (mm==12)  n=365+1//;  if (lyear(yy)) n=n+1; }
if((mm==1)||(mm==3)||(mm==5)||(mm==7)||(mm==8)||(mm==10)||(mm==12))
n+=31+dd
else if((mm==4)||(mm==6)||(mm==9)||(mm==11))
n+=31+dd+1
else if(mm==2) {
if(lyear(yy)) n+=29+dd-3
else if(!lyear(yy)) n+=28+dd-1
}
fours = yy/4
hunds = yy/100
fhunds = yy/400
var day
day=(yy + n + fours - hunds + fhunds) % 7;
day=parseInt(day)
switch(day)
{
case 1 : document.form1.age.value = "Você tem " + StoredAge + "  anos e nasceu num domingo "
break
case 2 : document.form1.age.value = "Você  tem " + StoredAge + "  anos e nasceu numa segunda-feira"
break
case 3 : document.form1.age.value = "Você  tem " + StoredAge + "  anos e nasceu numa terça-feira"
break
case 4 : document.form1.age.value = "Você  tem " + StoredAge + "  anos e nasceu numa quarta-feira"
break
case 5 : document.form1.age.value = "Você  tem " + StoredAge + " anos e nasceu numa  quinta-feira"
break
case 6 : document.form1.age.value = "Você  tem " + StoredAge + "  anos e nasceu numa sexta-feira"
break
case 7 : document.form1.age.value = "Você  tem " + StoredAge + "  anos e nasceu num sábado"
break
case 0 : document.form1.age.value = "Você  tem " + StoredAge + "   anos e nasceu num sábado"
break
 }
} else {
document.form1.age.value +=main+" Date"
 }
}
function lyear(a) {
return leapyear(a); 
/*if(((a%4==0) && (a%100!=0)) || (a%400==0)) return true;
else return false;*/
}
function run() {
var ap;
dd=document.form1.day.value
mm=document.form1.month.value
yy=document.form1.year.value
with(document.form1) {
ap=parseInt(ampm.selectedIndex);
hr=parseInt(hrs.value);
if(hr<=0 && hr>=13){
ap=null;alert("asdf")
 }
}
main="valid"
if ((mm<1) || (mm>12) || (dd<1) || (dd>31) || (yy<1) ||(mm=="") || (dd=="") || (yy==""))  main="Invalid" 
else 
if (((mm==4) || (mm==6) || (mm==9) || (mm==11)) && (dd>30)) main="Invalid"
else if (mm==2) {
if (dd>29)main="Invalid" 
else if((dd>28) && (!lyear(yy)))   main="Invalid"
}
else if((yy>9999)||(yy<0)) main="Invalid"
else main=main
if(main=="valid") {
days = new Date()
gdate = days.getDate()
gmonth = days.getMonth()
gyear = days.getFullYear()
if (gyear < yy) {main = "Invalid"; alert('You have either entered a future date or your system date is wrong'); return;}
if (gyear==yy && gmonth+1 < mm) {main = "Invalid";alert('You have either entered a future date or your system date is wrong'); return;}
if (gyear==yy && gmonth+1 == mm && gdate < dd) {main = "Invalid";alert('You have either entered a future date or your system date is wrong'); return;}
//alert(gyear);
age=gyear-yy;
if((mm==(gmonth+1))&&(dd<=parseInt(gdate))) {
age=age 
} 
else {
if(mm<=(gmonth)) {
age=age
} else {
age=age-1 
} 
}
if(age==0)	age=age
{
storeAge=age;
//document.form1.age.value="  You are " + age+ " years old   &  "
}
if(mm<=(gmonth+1))
age=age-1
if((mm==(gmonth+1))&&(dd>parseInt(gdate))) 
age=age+1
var m=0;
var n=0;
if (mm==12) { n=31-dd; }
if (mm==11) { n=61-dd;}   
if (mm==10) { n=92-dd; }  
if (mm==9) { n=122-dd;  } 
if (mm==8) { n=153-dd;}   
if (mm==7) { n=184-dd;}   
if (mm==6) { n=214-dd; }  
if (mm==5) { n=245-dd;  } 
if (mm==4) { n=275-dd;  } 
if (mm==3) { n=306-dd;  }
if (mm==2) { n=334-dd; if(leapyear(yy)) n=n+1 }
if (mm==1) { n=365-dd;  if (leapyear(yy)) n=n+1 }
if (gmonth==1) m=31
if (gmonth==2)
{ 
m=59
if (leapyear(gyear)) m=m+1;  
}
if (gmonth==3) { m=90;  if (leapyear(gyear)) m=m+1; }
if (gmonth==4) { m=120;  if (leapyear(gyear)) m=m+1; }
if (gmonth==5) { m=151 ; if (leapyear(gyear)) m=m+1; }
if (gmonth==6) { m=181;  if (leapyear(gyear)) m=m+1; }
if (gmonth==7) { m=212 ; if (leapyear(gyear)) m=m+1; }
if (gmonth==8) { m=243  ;if (leapyear(gyear)) m=m+1; }
if (gmonth==9) { m=273;  if (leapyear(gyear)) m=m+1; }
if (gmonth==10) { m=304;  if (leapyear(gyear)) m=m+1; }
if (gmonth==11) { m=334;  if (leapyear(gyear)) m=m+1; }
if (gmonth==12) { m=365;  if (leapyear(gyear)) m=m+1; }
totdays=(parseInt(age)*365)
totdays+=age/4;
totdays=parseInt(totdays)+gdate+m+n;
document.form1.answer.value="" + totdays +" dias ";
// month
gmonth = gmonth +1;	
months=storeAge*12

//months+=12-parseInt(mm);

//months+=gmonth;
//alert(gmonth)
if (parseInt(mm) > gmonth)
{
//alert('a')
months+=12-parseInt(mm);
months+=gmonth;
}
else if (parseInt(mm) != gmonth)
{
months += gmonth - parseInt(mm);
			//alert(gmonth - parseInt(mm));
if (dd > gdate && months >0)
{months = months - 1;}
}
/*if (dd <= gdate){
//alert('dd = ' + dd + '  days = ' +  gdate) 
months = months+1;
}*/
//alert('age*12 = ' + age*12 + ' |  parseInt(mm) =  ' + mm + '  | gmonth=  ' + gmonth + '    | Total Months = ' + months);
document.form1.months.value=months+" meses"
gmonth = gmonth -1;
var p=0;
//weeks
if (gmonth==1) p=31+gdate
if (gmonth==2)
{ p=59+gdate
if (leapyear(gyear)) m=m+1;  }
if (gmonth==3) { p=90+gdate;  if (leapyear(gyear)) p=p+1; }
if (gmonth==4) { p=120+gdate;  if (leapyear(gyear)) p=p+1; }
if (gmonth==5) { p=151+gdate ; if (leapyear(gyear)) p=p+1; }
if (gmonth==6) { p=181+gdate;  if (leapyear(gyear)) p=p+1; }
if (gmonth==7) { p=212+gdate ; if (leapyear(gyear)) p=p+1; }
if (gmonth==8) { p=243+gdate  ;if (leapyear(gyear)) p=p+1; }
if (gmonth==9) { p=273+gdate;  if (leapyear(gyear)) p=p+1; }
if (gmonth==10) { p=304+gdate;  if (leapyear(gyear)) p=p+1; }
if (gmonth==11) { p=334+gdate;  if (leapyear(gyear)) p=p+1; }
if (gmonth==12) { p=365+gdate;  if (leapyear(gyear)) p=p+1; }
/*weeks=(age*365)+n+p
weeks=weeks/7
etcdays=parseFloat(weeks)-parseInt(weeks)
etcdays=Math.round(etcdays*7)
weeks=parseInt(weeks)
etcdays+=parseInt(age/4)
if(etcdays>7)
weeks+=parseInt(etcdays/7)*/
weeks=totdays/7
weeks+=" semanas"
weeks=parseInt(weeks);
document.form1.weeks.value=weeks+" semanas"
// hours
var time=new Date()
ghour=time.getHours()
gmin=time.getMinutes()
gsec=time.getSeconds()  
hour=((age*365)+n+p)*24
hour+=(parseInt(age/4)*24)
if(ap==0){hour=hour-hr}else{if(ap==1){hour=hour-(11+hr)}}
document.form1.hours.value=hour+" horas"
var min
//minutes
min=(hour*60)+gmin
document.form1.min.value=min+" minutos"
sec=(min*60)+gsec
document.form1.sec.value=sec+" segundos"
var millisec;
var gmil;
gmil = days.getMilliseconds();
millisec=(sec*1000)+gmil;
document.form1.milli.value=millisec+" milisegundos";
mm=mm-1
var r
if(mm==0) r=1
if (mm==1) r=31
if (mm==2)
{ r=59
if (leapyear(gyear)) m=m+1;  }
if (mm==3) { r=90;  if (leapyear(gyear)) r=r+1; }
if (mm==4) { r=120;  if (leapyear(gyear)) r=r+1; }
if (mm==5) { r=151 ; if (leapyear(gyear)) r=r+1; }
if (mm==6) { r=181;  if (leapyear(gyear)) r=r+1; }
if (mm==7) { r=212 ; if (leapyear(gyear)) r=r+1; }
if (mm==8) { r=243  ;if (leapyear(gyear)) r=r+1; }
if (mm==9) { r=273;  if (leapyear(gyear)) r=r+1; }
if (mm==10) { r=304;  if (leapyear(gyear)) r=r+1; }
if (mm==11) { r=334;  if (leapyear(gyear)) r=r+1; }
if (mm==12) { r=365;  if (leapyear(gyear)) r=r+1; }
mm=mm+1;
r=parseInt(r)+parseInt(dd);
if(mm>(gmonth+1)){
bday=r-m-gdate
} else {
if(mm==(gmonth+1)&&(gdate<dd)){
bday=(r-m-gdate) 
} else {
if((leapyear(gyear))&&((mm>2)&&(dd<29))) {
a=366
} else {
a=365 
}
bday=a+(r-m-gdate)
 }
}
nhour=24-parseInt(ghour)
nmin=60-parseInt(gmin)
nsec=60-parseInt(gsec)
go(storeAge);
if(((bday==366)&&(leapyear(yy)))||((bday==365)&&(!leapyear(yy)))) {
document.form1.bday.value="Hoje é seu aniversário"
alert("feliz aniversário")
} else {
document.form1.bday.value=bday+" dias "+ nhour+" horas "+nmin+" minutos "+nsec+" segundos" 
//alert('works!!!!!');
setTimeout("run()",150)
 }
} else {
document.form1.age.value=main+" Date"
document.form1.months.value=""
document.form1.weeks.value=""
document.form1.answer.value=""
document.form1.hours.value=""
document.form1.min.value=""
document.form1.sec.value=""
document.form1.bday.value=""
document.form1.milli.value=""
 }
}