<!-- Início
function howLong(yr, mo, dy) {   //Parâmetros do calendário Ano, Mês e Dia
  var moFlag = 0;
  var dyFlag = 0;
  var dy = frm.day.value;
  var mo = frm.month.value;
  var yr = frm.year.value;
  var nDate = new Date();  // data atual (local)
  var nowTime = nDate.getTime();  // tempo atual 
  var thenTime = Date.UTC(yr, mo-1, dy);  // tempo especificado 
  var thisYear = nDate.getFullYear();
  var thisMonth = nDate.getMonth();
  var thisDay = nDate.getDate();
if (isNaN(dy) || isNaN(mo) || isNaN(yr)) {
window.alert("Data Inválida. Digite novamente somente números.");
frm.day.focus();
return false
}
if (dy<1 || dy>31) {
window.alert("Dia "+dy+" do Mês "+mo+" não é uma data válida");
frm.day.focus();
return false
} else {
dyFlag=1;
}
if (dy>30 && (mo == 2 || mo==4 || mo==6 || mo==9 || mo==11)) {
window.alert("Dia "+dy+" do Mês "+mo+" não é uma data válida");
frm.day.focus();
return false
} else {
dyFlag=1;
}
if (dy>29 && mo==2) {
window.alert("Dia "+dy+" do Mês "+mo+" não é uma data válida");
frm.day.focus();
return false
} else {
dyFlag=1;
}
if ((mo == 2 && dy == 29)  && ((yr%4 != 0) || (yr%100 == 0 && yr%400 != 0))) {
window.alert("29 de Fevereiro não é uma data válida em "+yr);
frm.day.focus();
return false
} else {
dyFlag=1;
}
if (mo<1 || mo>12) {
window.alert("Dia "+dy+" do Mês "+mo+" não é uma data válida");
frm.month.focus();
return false
} else {
moFlag=1;
}
if (dyFlag==1 && moFlag==1) {
if (nowTime >= thenTime) {   //-----------------Tempo presente ou passado
if ((thisMonth > mo-1) || ((thisMonth == mo-1) && (thisDay >= dy))) {
  whYrs = thisYear - yr;
  spareDys = parseInt((nowTime - Date.UTC(thisYear,mo-1,dy))/(3600000*24));
   if ((mo == 2 && dy == 29)  && ((thisYear%4 != 0) || (thisYear%100 == 0 &&  thisYear%400 != 0))) {spareDys = spareDys + 1}
  } else {
  whYrs = thisYear - yr - 1;
  spareDys = parseInt((nowTime - Date.UTC(thisYear-1,mo-1,dy))/(3600000*24));
   if ((mo == 2 && dy == 29)  && (((thisYear-1)%4 != 0) || ((thisYear-1)%100 == 0 && (thisYear-1)%400 != 0))) {spareDys = spareDys + 1}
   }
 } else {   //----------------------------Tempo Futuro
if ((thisMonth < mo-1) || ((thisMonth == mo-1)&& (thisDay <= dy))) {
  whYrs = yr - thisYear;
  spareDys = parseInt((thenTime - Date.UTC(yr,thisMonth,thisDay))/(3600000*24));
   if ((thisMonth == 1 && thisDay == 29)  && ((yr%4 != 0) || (yr%100 == 0 && yr%400 != 0))) {spareDys = spareDys - 1}
  } else {
  whYrs = yr - thisYear - 1;
  spareDys = parseInt((thenTime - Date.UTC(yr-1,thisMonth,thisDay)) /(3600000*24));
   if ((thisMonth == 1 && thisDay == 29)  && (((yr-1)%4 != 0) || ((yr-1)%100 == 0 && (yr-1)%400 !=   0))) {spareDys = spareDys - 1};
   }
  }
}
if (nowTime >= thenTime) {
frm.timeBetween.value = " "+whYrs +
    (whYrs == 1 ? " Ano e " : " Anos e ") + spareDys +
    (spareDys == 1 ? " Dia " : " Dias ") + ""
 } else {
frm.timeBetween.value = " "+whYrs +
    (whYrs == 1 ? " Ano e " : " Anos e ") + spareDys +
    (spareDys == 1 ? " Dia " : " Dias ") + ""
 }
}
//  Fim -->
