Calcula idade por data C#

Por - maio 11, 2010

Função para calcular a idade de algo passando por parâmetro uma data em C#.

       public static int calculaIdade(DateTime dtNascimento)
{
int idade = DateTime.Now.Year - dtNascimento.Year;
if (DateTime.Now.Month < dtNascimento.Month || (DateTime.Now.Month == dtNascimento.Month && DateTime.Now.Day < dtNascimento.Day))
idade--;

return idade;
}

VOCÊ PODE GOSTAR

3 comments

  1. Olá, Bom dia.

    Utilizouma função parecida com este, porém estou com problema com cálculo de anos bissextos, não testei seu código ainda, sabe se funciona com anos bissextos também??

    grato.

    ResponderExcluir
  2. Olá,
    O cálculo de idade feito não sofre alterações caso o ano sejam bissexto, pois o mesmo calcula a diferença de anos e depois verifica se a idade fez aniversário no ano corrente, caso não, tira um ano do resultado.

    Qualquer coisa estou a disposição.

    ResponderExcluir
  3. Olá Alessandro,

    E como poderia ficar o código para cálculo do dia. Tentei fazer apenas algumas alterações, em vez do ano coloquei o dia. Em muitos casos dá certo, mas por exemplo se o data de nascimento for: 29/01/1980. O retorno é: Ano = 32, mes = 7 e dia = -26. E o correto seria: mes = 6 e dia = 3 (0o 4). Tendo como base a data (Now.Day) hoje: 03/08/2012.

    Bom, quero deixar claro, que sou iniciante nessa área. Estou no segundo semestre do curso de Análise e Desenvolvimento de Sistemas. E numa pesquisa na internet, vi esse exemplo teu e resolvi reproduzir.

    Um grande abraço e sucesso a você. Parabéns, pela iniciativa de ajudar os internautas, da área de TI.

    ResponderExcluir