Calcular IDADE com datetimepicker
Boa tarde, estou fazendo em uma tela de cadastro com um campo com datetimepicker .
Gostaria que calculasse a data que colocar no datetimepicker e apresentasse em uma label a idade da pessoa em tempo real.
Para que na tela de busca(select) eu consiga adicionar um campo para buscar a idade e não o ano de nascimento.
Gostaria que calculasse a data que colocar no datetimepicker e apresentasse em uma label a idade da pessoa em tempo real.
Para que na tela de busca(select) eu consiga adicionar um campo para buscar a idade e não o ano de nascimento.
Rafael Miranda
Curtidas 0
Respostas
Joel Rodrigues
28/03/2012
Você precisa da idade exata? ANOS-MESES-DIAS?
Para pegar a quantidade de anos, basta o seguinte:
if(DateTime.Today.Month > datePicker.Value.Month && DateTime.Today.Day > datePicker.Value.Day)
anos = DateTime.Today.Year - datePicker.Value.Year;
else
anos = DateTime.Today.Year - datePicker.Value.Year - 1;
Se passou do aniversário, pega a diferença de anos, senão, subtrai um ano (ainda não completou).
Seria isso?
Para pegar a quantidade de anos, basta o seguinte:
if(DateTime.Today.Month > datePicker.Value.Month && DateTime.Today.Day > datePicker.Value.Day)
anos = DateTime.Today.Year - datePicker.Value.Year;
else
anos = DateTime.Today.Year - datePicker.Value.Year - 1;
Se passou do aniversário, pega a diferença de anos, senão, subtrai um ano (ainda não completou).
Seria isso?
GOSTEI 0
Rafael Miranda
28/03/2012
Obrigado pela ajuda.
Mas ainda não consegui, tipo na tela de cadastro de aluno tem o campo de datetimepicker
e ao lado coloquei um label que seria a idade, conforme eu mude a data que esta no datetimepicker o label modifica tbm.
Tentei faze de tudo e nada...
Estou fazendo em C#
Mas ainda não consegui, tipo na tela de cadastro de aluno tem o campo de datetimepicker
e ao lado coloquei um label que seria a idade, conforme eu mude a data que esta no datetimepicker o label modifica tbm.
Tentei faze de tudo e nada...
Estou fazendo em C#
GOSTEI 0
Joel Rodrigues
28/03/2012
Ponha o cálculo e exibição no evento onLeave do DateTimePicker.
Após calcular, você exibe com label.Text = anos.ToString();
Tente aí.
Após calcular, você exibe com label.Text = anos.ToString();
Tente aí.
GOSTEI 0
Rafael Miranda
28/03/2012
Esta dando erro no ANOS
THE NAME ANOS DOES NOT EXIST IN THE CURRENT CONTEXT
THE NAME ANOS DOES NOT EXIST IN THE CURRENT CONTEXT
GOSTEI 0
Rafael Miranda
28/03/2012
estou fazendo assim
private void label17_Click(object sender, EventArgs e)
{
label17.Text = anos.ToString();
}
private void dtpNascimentoxxx_Leave(object sender, EventArgs e)
{
if (DateTime.Today.Month > dtpNascimentoxxx.Value.Month && DateTime.Today.Day > dtpNascimentoxxx.Value.Day)
anos = DateTime.Today.Year - dtpNascimentoxxx.Value.Year;
else
anos = DateTime.Today.Year - dtpNascimentoxxx.Value.Year - 1;
}
private void label17_Click(object sender, EventArgs e)
{
label17.Text = anos.ToString();
}
private void dtpNascimentoxxx_Leave(object sender, EventArgs e)
{
if (DateTime.Today.Month > dtpNascimentoxxx.Value.Month && DateTime.Today.Day > dtpNascimentoxxx.Value.Day)
anos = DateTime.Today.Year - dtpNascimentoxxx.Value.Year;
else
anos = DateTime.Today.Year - dtpNascimentoxxx.Value.Year - 1;
}
GOSTEI 0
Rafael Miranda
28/03/2012
Está assim mais não faz nada no labelIdade
private void dtpNascimentoxxx_Leave(object sender, EventArgs e)
{
if (DateTime.Today.Month > dtpNascimentoxxx.Value.Month && DateTime.Today.Day > dtpNascimentoxxx.Value.Day)
anos = DateTime.Today.Year - dtpNascimentoxxx.Value.Year;
else
anos = DateTime.Today.Year - dtpNascimentoxxx.Value.Year - 1;
lblIdade.Text = anos.ToString();
}
private void dtpNascimentoxxx_Leave(object sender, EventArgs e)
{
if (DateTime.Today.Month > dtpNascimentoxxx.Value.Month && DateTime.Today.Day > dtpNascimentoxxx.Value.Day)
anos = DateTime.Today.Year - dtpNascimentoxxx.Value.Year;
else
anos = DateTime.Today.Year - dtpNascimentoxxx.Value.Year - 1;
lblIdade.Text = anos.ToString();
}
GOSTEI 0
Rafael Miranda
28/03/2012
Apareceu a idade mais tem que dar tab para aparecer a idade e esta com 1 ano a mais.
GOSTEI 0
Joel Rodrigues
28/03/2012
Cara, o evento onLeave ocorre quando você SAI do controle. Ponha esse código no evento onChange ou semelhante. Dica: deixe no Leave, é mais seguro.
Quanto ao ano, subtraia 1.
Quanto ao ano, subtraia 1.
GOSTEI 0
Joel Rodrigues
28/03/2012
Teste o seguinte:
if (DateTime.Today.Month >= dtpNascimentoxxx.Value.Month && DateTime.Today.Day >= dtpNascimentoxxx.Value.Day)
anos = DateTime.Today.Year - dtpNascimentoxxx.Value.Year;
else
anos = DateTime.Today.Year - dtpNascimentoxxx.Value.Year - 1;
lblIdade.Text = anos.ToString();
if (DateTime.Today.Month >= dtpNascimentoxxx.Value.Month && DateTime.Today.Day >= dtpNascimentoxxx.Value.Day)
anos = DateTime.Today.Year - dtpNascimentoxxx.Value.Year;
else
anos = DateTime.Today.Year - dtpNascimentoxxx.Value.Year - 1;
lblIdade.Text = anos.ToString();
GOSTEI 0
Rafael Miranda
28/03/2012
Muito obrigado.
Deus certo aqui, irei arrumar a tabela para poder gravar no banco e arrumar o select e where no form de busca...
Abração.
Deus certo aqui, irei arrumar a tabela para poder gravar no banco e arrumar o select e where no form de busca...
Abração.
GOSTEI 0
Joel Rodrigues
28/03/2012
Disponha, fico feliz por ter ajudado.
Sempre que precisar, estamos aqui.
Sempre que precisar, estamos aqui.
GOSTEI 0