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
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
Curtir tópico
+ 0
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.
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!
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
Clique aqui para fazer login e interagir na Comunidade :)