Calcular idade

Esta calculadora mostra a idade a partir da data de nascimento: em anos completos e de forma exata, em anos, meses e dias. Ela também conta os dias vividos e quanto falta para o próximo aniversário, com o dia da semana em que ele cai. Dá para calcular a idade em qualquer data, não só hoje, como na data de uma inscrição ou de um contrato.

Atualizado em · Por Leonardo Gaertner

Idade

Informe a data de nascimento

Achou um resultado errado ou tem uma sugestão? Avise por e-mail.

Como usar

  1. Informe a data de nascimento.
  2. Deixe a data de hoje ou escolha outra data em "Idade em".
  3. Leia a idade, a idade exata e os dias até o próximo aniversário.

Como funciona

A idade em anos é o número de aniversários completos até a data escolhida: quem nasceu em 2 de outubro de 1990 tem 35 anos em 1º de outubro de 2026 e faz 36 no dia seguinte. A idade exata soma os meses e dias desde o último aniversário, contando meses de calendário.

Quem nasceu em 29 de fevereiro tem aniversário só nos anos bissextos. Nos outros anos, a calculadora considera 28 de fevereiro, a mesma convenção das planilhas. Para fins legais, como a maioridade, há o entendimento de que vale 1º de março, pelo artigo 132 do Código Civil.

Exemplo

Nascimento: 02/10/1990

Idade em 01/10/2026: 35 anos (35 anos, 11 meses e 29 dias)

Próximo aniversário: amanhã, 36 anos

Fonte: Código Civil, art. 132: contagem de prazos em dias, meses e anos

Em código

Para calcular a idade em código, subtraia os anos e tire 1 se o aniversário ainda não chegou naquele ano. Dividir os dias vividos por 365 erra perto do aniversário.

JavaScript
// Idade em anos completos na data de referência (padrão: hoje), com datas no formato AAAA-MM-DD.
function calcularIdade(nascimento, referencia = new Date().toISOString().slice(0, 10)) {
  const [an, mn, dn] = nascimento.split('-').map(Number);
  const [ar, mr, dr] = referencia.split('-').map(Number);
  let idade = ar - an;
  // Ainda não fez aniversário neste ano? Tira 1.
  // Nesta conta, quem nasceu em 29/02 faz aniversário em 1º/03 nos anos não bissextos.
  if (mr < mn || (mr === mn && dr < dn)) idade--;
  return idade;
}

console.log(calcularIdade('1990-10-02', '2026-10-01')); // 35
console.log(calcularIdade('1990-10-02', '2026-10-02')); // 36
Python
from datetime import date


def calcular_idade(nascimento: date, referencia: date | None = None) -> int:
    """Idade em anos completos na data de referência (padrão: hoje)."""
    referencia = referencia or date.today()
    # Ainda não fez aniversário neste ano? A comparação de tuplas resolve: (mês, dia).
    # Nesta conta, quem nasceu em 29/02 faz aniversário em 1º/03 nos anos não bissextos.
    ainda_nao = (referencia.month, referencia.day) < (nascimento.month, nascimento.day)
    return referencia.year - nascimento.year - ainda_nao


print(calcular_idade(date(1990, 10, 2), date(2026, 10, 1)))  # 35
print(calcular_idade(date(1990, 10, 2), date(2026, 10, 2)))  # 36
PHP
<?php
// Idade em anos completos na data de referência (padrão: hoje), com datas no formato AAAA-MM-DD.
function calcularIdade(string $nascimento, ?string $referencia = null): int
{
    $inicio = new DateTimeImmutable($nascimento);
    $fim = new DateTimeImmutable($referencia ?? 'today');
    // diff conta anos, meses e dias de calendário; y são os anos completos.
    // Nesta conta, quem nasceu em 29/02 faz aniversário em 1º/03 nos anos não bissextos.
    return $inicio->diff($fim)->y;
}

echo calcularIdade('1990-10-02', '2026-10-01'), PHP_EOL; // 35
echo calcularIdade('1990-10-02', '2026-10-02'), PHP_EOL; // 36

Perguntas frequentes

Como calcular a idade no Excel?

Use =DATADIF(A1;HOJE();"Y"), com a data de nascimento em A1. Para os meses desde o último aniversário, use =DATADIF(A1;HOJE();"YM").

Como calcular a idade em código sem errar?

Subtraia os anos e tire 1 se o aniversário daquele ano ainda não chegou. Dividir os dias vividos por 365 ou 365,25 erra perto do aniversário. A seção Em código, nesta página, mostra a função em JavaScript, Python e PHP.

A data de nascimento fica salva?

Não. O cálculo é feito no seu navegador, e a data não é enviada a nenhum servidor nem guardada depois que você fecha a página.