Entendendo como funciona a medição da nossa idade
A gente costuma falar da idade em anos, mas essa é só uma das formas possíveis. Se você for mais preciso, consegue calcular quantos dias já viveu, quantas horas, quantos segundos. O cálculo é simples, mas tem algumas pegadinhas que a maioria das pessoas não considera.
nossa idade pode ser medida em diferentes unidades de tempo
A forma mais comum de calcular a idade é subtrair a data de nascimento da data atual. Ano atual menos ano do nascimento. Mas isso dá errado quando ainda não fez aniversário no ano corrente. Você precisa ajustar subtraindo um ano se o mês e dia atuais forem anteriores ao mês e dia do seu nascimento. Já trabalhei com um sistema que precisava calcular idades exatas para uma consulta médica. A pessoa nasceu em 29 de fevereiro. Em anos bissextos, tudo funciona normalmente. Mas em anos normais, a data não existe. O sistema simplesmente dava erro. A solução foi tratar anos não bissextos usando 28 de fevereiro como data base, o que é o padrão usado pelo IBGE e pela maioria dos órgãos oficiais brasileiros.
Se quiser calcular em dias, pegue a diferença entre as datas e converta. Um ano tem cerca de 365,25 dias quando você considera os bissextos. A conta fica mais complicada porque cada ano pode ter 365 ou 366 dias, dependendo se é bissexto. A regra é simples: ano divisível por 4 é bissexto, exceto os divisíveis por 100, que só são bissextos se também forem divisíveis por 400. Ano 2000 foi bissexto. Ano 1900 não foi. Ano 2100 não será. Para segundos, a coisa esquenta um pouco. Multiply os dias pela quantidade de segundos em um dia: 86.400. Mas aí você precisa considerar os segundos bissextos que o sistema UTC às vezes adiciona para manter a sincronia com a rotação da Terra. Desde 1972, foram inseridos 27 segundos bissextos. Isso afeta cálculos de altíssima precisão, como os usados em sistemas financeiros de alta frequência e satélites GPS. Para uso cotidiano, dá pra ignorar.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Tem gente que acha que calcular idade em semanas ou meses é útil. Na prática, não é. Meses têm tamanhos diferentes. 28 dias, 30, 31. A conta não fecha de forma consistente. Semanas funcionam melhor porque têm duração fixa de 7 dias, mas ainda assim raramente são usadas fora de contextos específicos, como acompanhamento de bebês prematuros em UTIs neonatais. Uma coisa que poucas pessoas sabem é que existem fórmulas matemáticas prontas para calcular a idade exata sem precisar de bibliotecas externas. A fórmula de Hatcher é uma delas. Ela leva em conta o calendário gregoriano e calcula a diferença exata entre duas datas. Funciona bem, mas requer atenção aos casos de borda como as viradas de século que citei antes.
Se você está desenvolvendo algo e precisa disso, a biblioteca Python dateutil resolve boa parte dos problemas automaticamente. Ela lida com anos bissextos, segundos bissextos e formatos de data variados. Para JavaScript, a biblioteca moment.js ou a nativa Intl.DateTimeFormat fazem o trabalho. Mas cuidado com moment.js: ela foi descontinuada e não recebe mais atualizações de segurança desde 2020. Use algo mais recente. O problema mais frequente que vejo em produção é gente calculando idade apenas com o ano, ignorando mês e dia. Resultado: crianças que ainda não completaram o ano são consideradas com um ano a mais do que realmente têm. Em sistemas de venda de ingressos, planos de saúde e benefícios corporativos, isso gera erros que custam dinheiro e dor de cabeça.
Outra pegadinha é o fuso horário. Se você nasceu em São Paulo às 23h e está calculando idade a partir de um servidor em Nova York, a data pode mudar dependendo do fuso horário configurado no sistema. Sempre normalize para UTC antes de calcular diferenças de data. Isso elimina ambiguidade. Resumindo, nossa idade pode ser medida em anos, meses, dias, horas, minutos ou segundos. Cada unidade tem seu nível de precisão e suas próprias armadilhas. O importante é escolher a unidade certa para o contexto e usar ferramentas que lidem corretamente com os casos extremos do calendário.