Calculo de Idade

20/10/2008

0

Olá Pessoal se alguem puder me ajudar já agradeço, estou com o seguinte problema, preciso a partir da data de nascimento gerar a idade da pessoa e verificar se ela tem menos de 2 anos caso tenha eu devo mostrar a idade atual com os meses. Implementei dessas formas, mas se a pessoa faz aniversario em 21/10/85 e estamos e em 20/10/08 ele já mostra com 23anos, sendo que a pessoa ainda tem 22.

DateTime dataatual = DateTime.Now;
DateTime datanascimento;
datanascimento = DateTime.Parse(DataNascimentoTextBox.Text);

int anos;

if (datanascimento.Month >= dataatual.Month && datanascimento.Day >= dataatual.Day)
{
anos = dataatual.Year - datanascimento.Year;
}
else{
anos = dataatual.Year - datanascimento.Year;
anos = anos - 1;
}
IdadeatualLabel.Text = anos.ToString() + ´ ano(os)´;

if (anos < 3)
{
int meses = dataatual.Month - datanascimento.Month;
IdadeMesLabel.Text = meses.ToString() + ´ mes(es)´;
IdadeMesLabel.Visible = true;
}
else
{

IdadeMesLabel.Visible = false;
}
}



2 tentativa


TimeSpan date;
date= DateTime.Now.Subtract (DateTime.Parse(DataNascimentoTextBox.Text));
double anos = date.TotalDays / 365;

IdadeatualLabel.Text = anos.ToString();

if (anos < 2)
{
int meses = DateTime.Now.Month - DateTime.Parse(DataNascimentoTextBox.Text).Month;
IdadeMesLabel.Text = meses.ToString() + ´ mes(es)´;
IdadeMesLabel.Visible = true;
}
else {

IdadeMesLabel.Visible = false;
}
}

Obrigada


Danoca

Danoca

Responder

Posts

22/10/2008

Codename.v

:) O primeiro modo como você estava fazendo estava corredo. Você só precisava persistir um pouco mais no IF rs... Segue abaixo o código.

DateTime dataNascimento;

int idade;


DataNascimento = DateTime.Parse(txtDataNascimento.Text);

idade = DateTime.Now.Year - dataNascimento.Year;

if ((dataNascimento.Month > DateTime.Now.Month) ||
     ((dataNascimento.Month == DateTime.Now.Month) &&
      (dataNascimento.Day < DateTime.Now.Day)))
                    --idade;
                    
txtIdade.Text = idade.ToString() + " ano(s)";


Comentando: Primeiro ele armazena o conteudo do controle TextBox onde o usuário digitou a data e armazena na variável de tipo DateTime chamada dataNascimento. Em seguida ele subtrai o ano de nascimento que o usuário digitou do ano atual. E finalizando, faz a seguinte verificação... Se o mês digitado for maior que o mês atual OU se o mês digitado for igual ao mês atual e o dia digitado for menor que o dia atual, idade = idade -1.

Abraços!


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar