RELÓGIO DA VIDA

⏳ Relógio da Vida – Versão Turbinada

Responda às perguntas e veja a estimativa personalizada — com barra, relógio ao vivo e gráfico de pizza.

Resumo

Estimativa

Relógio ao vivo

Gráfico de vida (pizza)

Vivida
Restante

Como chegamos a este número

    *Estimativas educativas, baseadas em fatores de estilo de vida amplamente discutidos em literatura geral. Não é aconselhamento médico.
    Expectativa base: ${expBase.toFixed(1)} anos
    Ajuste por hábitos: ${delta>=0?'+':''}${delta.toFixed(1)} anos
    Expectativa final: ${expFinal.toFixed(1)} anos
    `; $('lc-est').innerHTML = `
    Tempo restante estimado:
    • ${Math.floor(anosRest)} anos
    • ${monthsRest} meses
    • ${daysRest} dias
    • ${hoursRest} horas
    `; const pctUsed = Math.min(100, (idade/expFinal)*100); const pctLeft = 100 - pctUsed; const barUsed = $('lc-bar-used'); const barLeft = $('lc-bar-left'); barUsed.style.width = pctUsed + '%'; barLeft.style.left = pctUsed + '%'; barLeft.style.width = pctLeft + '%'; $('lc-expl').innerHTML = expl.map(e=>`
  • ${e}
  • `).join(''); $('lc-out').style.display = 'block'; // contador if(timer) clearInterval(timer); const target = Date.now() + anosRest*365.25*24*3600*1000; function tick(){ let rem = Math.max(0, target - Date.now()); const totalSec = Math.floor(rem/1000); const d = Math.floor(totalSec/(3600*24)); const h = Math.floor((totalSec%(3600*24))/3600); const m = Math.floor((totalSec%3600)/60); const s = totalSec%60; $('lc-counter').textContent = `${d}d ${h}h ${m}m ${s}s`; if(totalSec<=0) clearInterval(timer); } tick(); timer = setInterval(tick,1000); // donut renderDonut(pctUsed); // share const shareText = `Meu Relógio da Vida: expectativa final ${expFinal.toFixed(1)} anos. Tempo restante estimado: ${Math.floor(anosRest)} anos (${daysRest} dias). Faça o seu!`; $('btnWhats').href = "https://wa.me/?text=" + encodeURIComponent(shareText); $('btnFace').href = "https://www.facebook.com/sharer/sharer.php?u=" + encodeURIComponent(location.href) + "&quote=" + encodeURIComponent(shareText); $('btnShare').onclick = async ()=> { if(navigator.share){ try{ await navigator.share({title:"Relógio da Vida", text:shareText, url:location.href}); }catch(e){} } else { alert("Compartilhamento nativo indisponível. Use WhatsApp ou Facebook."); } }; $('btnPrint').onclick = ()=>window.print(); } $('btnCalc').addEventListener('click', render); $('btnReset').addEventListener('click', ()=>{ $('lc-form').reset(); $('lc-out').style.display='none'; if(timer) clearInterval(timer); }); })();