Calculadora de Expectativa de Vida

2.8/5 - (6 votos)

Descubra, em menos de 1 minuto, uma estimativa de quantos anos você pode viver com base em idade, sexo e hábitos de vida — como atividade física, sono, tabagismo e condições de saúde. A calculadora abaixo usa referências populacionais e aplica ajustes simples por estilo de vida para oferecer uma visão aproximada dos seus anos restantes e da idade estimada ao falecimento.

Livro O Código da Inflamação
Quer somar anos ao seu resultado?

A inflamação crônica é o denominador comum das doenças que encurtam a vida. O Código da Inflamação explica como reconhecê-la e reduzi-la.

Conhecer o livro →

Use o resultado como um ponto de partida para refletir sobre mudanças que aumentem qualidade e longevidade (ex.: mover mais, dormir melhor, controlar pressão e glicemia). Se quiser discutir estratégias personalizadas, agende uma consulta.

Aviso: esta ferramenta é educativa e não substitui avaliação médica, exames ou cálculos atuariais.

#le-widget { –bg:#fff; –fg:#111; –muted:#6b7280; –acc:#6d28d9; –ok:#10b981; –bad:#ef4444; –card:#f8fafc; –line:#e5e7eb; font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, sans-serif; color:var(–fg); } #le-widget .le-wrap{max-width:760px;margin:1.25rem auto;padding:1rem;border:1px solid var(–line);border-radius:16px;background:var(–bg);box-shadow:0 6px 24px rgba(0,0,0,.06)} #le-widget h2{margin:0 0 .5rem;font-size:1.35rem} #le-widget p.le-note{margin:.25rem 0 1rem;color:var(–muted);font-size:.9rem} #le-widget .grid{display:grid;gap:.8rem} @media(min-width:720px){#le-widget .grid{grid-template-columns:1fr 1fr}} #le-widget .field{background:var(–card);border:1px solid var(–line);border-radius:12px;padding:.8rem} #le-widget label{display:block;font-size:.85rem;color:var(–muted);margin-bottom:.35rem} #le-widget input[type=”number”], #le-widget input[type=”text”], #le-widget select{width:100%;padding:.55rem .6rem;border:1px solid var(–line);border-radius:10px;background:#fff} #le-widget input[type=”range”]{width:100%} #le-widget .row{display:flex;gap:.6rem;flex-wrap:wrap} #le-widget .row .pill{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(–line);padding:.45rem .6rem;border-radius:999px;cursor:pointer;background:#fff} #le-widget .row .pill input{accent-color:var(–acc)} #le-widget .muted{color:var(–muted);font-size:.85rem} #le-widget .out{grid-column:1/-1;background:#0b1324;color:#e5e7eb;border-radius:14px;padding:1rem;border:1px solid #10182f} #le-widget .big{font-size:1.8rem;font-weight:700} #le-widget .kpi{display:flex;gap:1rem;flex-wrap:wrap;margin:.6rem 0} #le-widget .kpi .box{flex:1 1 160px;background:#0f1a33;border:1px solid #152145;border-radius:12px;padding:.8rem} #le-widget .bar{position:relative;height:14px;background:#0f1a33;border:1px solid #152145;border-radius:999px;overflow:hidden;margin-top:.5rem} #le-widget .bar .fill{position:absolute;inset:0;width:0;background:linear-gradient(90deg,var(–ok),#22c55e,#84cc16);transition:width .4s ease} #le-widget .bar .mark{position:absolute;top:-6px;width:2px;height:26px;background:var(–bad)} #le-widget .actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.8rem} #le-widget button{border:1px solid var(–line);background:#fff;border-radius:10px;padding:.55rem .8rem;cursor:pointer} #le-widget button.primary{background:var(–acc);border-color:var(–acc);color:#fff} #le-widget details{grid-column:1/-1;background:var(–card);border:1px solid var(–line);border-radius:12px;padding:.8rem} #le-widget summary{cursor:pointer;font-weight:600} #le-widget .fine{font-size:.8rem;color:var(–muted)}

Calculadora de Expectativa de Vida (estimativa)

Base padrão: • Mulher: anos • Homem: anos. Ajustes por hábitos são heurísticos.

1850100
IMC:
Idade estimada ao falecimento
anos
Anos restantes (estim.)
Ajuste por hábitos
0.0 anos
Barra compara sua idade atual com a estimativa.
*Estimativa simplificada e aproximada; não substitui avaliação médica ou atuarial.
⚙️ Ajustes avançados (clique para ver/editar)
- Baselines (padrão Brasil): data-baseline-male="76", data-baseline-female="82"
- Bônus de sobrevivente (ajuste condicional por idade): +0.10 × idade
- IMC: <18.5 → −2; 25–29.9 → −1; ≥30 → −3
- Fumante: −5; Ex-fumante: −2
- Atividade: 0x → −2; 1–2x → −1; 3–5x → +1; 6+ → +1.5
- Hipertensão: −2; Diabetes: −3
- Álcool: moderado → 0; alto → −3
- Sono: <6h → −2; 7–9h → +1; >9h → −1
- Estresse: moderado → −1; alto → −2
- Família longeva (≥90y): +2
- Limites: idade estimada final entre [idade atual + 1, 105]
(function(){ const $ = (sel, root=document)=>root.querySelector(sel); const $$ = (sel, root=document)=>[…root.querySelectorAll(sel)]; const root = document.getElementById(‘le-widget’); const country = root.dataset.country || ‘Brasil’; const BASE = { m: parseFloat(root.dataset.baselineMale || 76), f: parseFloat(root.dataset.baselineFemale || 82) }; // Elements const age = $(‘#le-age’, root); const ageVal = $(‘#age-val’, root); const sexEls = $$(‘input[name=”le-sex”]’, root); const h = $(‘#le-height’, root), w = $(‘#le-weight’, root), bmiOut = $(‘#le-bmi’, root); const smoke = $$(‘input[name=”le-smoke”]’, root); const ex = $$(‘input[name=”le-ex”]’, root); const htn = $(‘#le-htn’, root), dm = $(‘#le-dm’, root); const alc = $$(‘input[name=”le-alc”]’, root); const sleep = $$(‘input[name=”le-sleep”]’, root); const stress = $$(‘input[name=”le-stress”]’, root); const fam = $(‘#le-fam’, root); const estAge = $(‘#le-est-age’, root), rem = $(‘#le-rem’, root), adjOut = $(‘#le-adj’, root); const bar = $(‘#le-bar’, root), mark = $(‘#le-mark’, root); $(‘#le-country’, root).textContent = country; $(‘#le-base-f’, root).textContent = BASE.f.toFixed(1); $(‘#le-base-m’, root).textContent = BASE.m.toFixed(1); function valRadio(list){ const el = list.find(i=>i.checked); return el ? el.value : null; } function toNum(el){ const v = parseFloat(el.value); return isFinite(v) ? v : 0; } function clamp(v, a, b){ return Math.max(a, Math.min(b, v)); } function calcBMI(){ const cm = toNum(h), kg = toNum(w); if(!cm || !kg) return null; const m = cm/100; return kg/(m*m); } function adjustments(){ let adj = 0; // Survivor bonus: conditional life expectancy tends to increase with age const A = parseInt(age.value,10); adj += 0.10 * A; // +0.10 years per year of age // BMI const bmi = calcBMI(); if (bmi){ if (bmi = 25 && bmi = 30) adj -= 3; } // Smoking const s = valRadio(smoke); if (s === ‘yes’) adj -= 5; else if (s === ‘ex’) adj -= 2; // Exercise const e = parseInt(valRadio(ex) || ‘0’, 10); if (e === 0) adj -= 2; else if (e <= 2) adj -= 1; else if (e = 0 ? ‘+’ : ”) + adj.toFixed(1); // Progress bar: fill = A/est ; mark at est const pct = clamp((A / est) * 100, 0, 100); bar.style.width = pct + ‘%’; // mark position at 100% (end) mark.style.left = ‘calc(100% – 1px)’; } // Events [‘input’,’change’].forEach(ev=>{ [age,h,w,htn,dm,fam].forEach(el=>el.addEventListener(ev, compute)); […sexEls,…smoke,…ex,…alc,…sleep,…stress].forEach(el=>el.addEventListener(ev, compute)); }); // Buttons $(‘#le-reset’, root).addEventListener(‘click’, ()=>{ age.value = 50; h.value = 165; w.value = 68; sexEls[0].checked = true; smoke.find(i=>i.value===’none’).checked = true; ex.find(i=>i.value===’0′).checked = true; htn.checked = false; dm.checked = false; alc.find(i=>i.value===’none’).checked = true; sleep.find(i=>i.value===’lt6′).checked = true; stress.find(i=>i.value===’low’).checked = true; fam.checked = false; compute(); }); $(‘#le-copy’, root).addEventListener(‘click’, async ()=>{ const A = parseInt(age.value,10); const sex = (valRadio(sexEls)===’m’) ? ‘masculino’ : ‘feminino’; const txt = `Estimativa de expectativa de vida: ${$(‘#le-est-age’,root).textContent} anos (${ $(‘#le-rem’,root).textContent } anos restantes) — idade ${A}, sexo ${sex}.`; try { await navigator.clipboard.writeText(txt); alert(‘Resultado copiado!’); } catch { alert(‘Copie manualmente: ‘ + txt); } }); // Init compute(); })(); Ative o JavaScript para usar a calculadora.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima