Usuário:Diogo-Sergio-N256/Calculadora de idade.js
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=""
}
}