CONVERTER DATA EM IDADE
Boa noite amigos
A Inicio meu Cliente pediu um cadastro Simples conforme exe. abaixo
pois bem tenho;
ex. atual
Codigo, Nome, Data de Nascimento
01 Pedro 10/10/1961
ao fazer a pesquisa converter a data de nascimento em Idade
trocar para;
Codigo, Nome, Idade
01 Pedro 50
Obs usando a data de Nascimento ja cadastradas,
Grato
A Inicio meu Cliente pediu um cadastro Simples conforme exe. abaixo
pois bem tenho;
ex. atual
Codigo, Nome, Data de Nascimento
01 Pedro 10/10/1961
ao fazer a pesquisa converter a data de nascimento em Idade
trocar para;
Codigo, Nome, Idade
01 Pedro 50
Obs usando a data de Nascimento ja cadastradas,
Grato
Idade = Format(txtdata.text,[Ô]0[Ô])
Idade = Idade / 365
eu fiz assim e funcionou blzinha...
Idade = Idade / 365
eu fiz assim e funcionou blzinha...
[txt-color=#007100][ô]Variavel q guarda a data de aniversario[/txt-color]
Dim DataNiver as Date
[txt-color=#007100][ô]Varial que guarda os anos[/txt-color]
Dim Anos as Integer
[txt-color=#007100][ô]Recebe dados[/txt-color]
DataNiver = txtDataNasc.text
[txt-color=#007100][ô]Converter essa data em anos
[ô] - > DateDiff([Ô]yyyy[Ô], DataNiver, Date)[/txt-color]
Anos = DateDiff([Ô]yyyy[Ô], DataNiver, Date)
[txt-color=#007100][ô]Apresenta resultado[/txt-color]
msgbox [Ô]Idade: [Ô] & Anos
------------------------------------
Formatos
------------------------------------
[Ô]yyyy[Ô] > anos
[Ô]m[Ô] > meses
[Ô]W[Ô] > semanas
[Ô]D[Ô] > dias
[Ô]H[Ô] > horas
[Ô]N[Ô] > minutos
[Ô]S[Ô] > segundos
------------------------------------
é só subtrair a data de nascimento da data de hoje:
Dim DataNascimento As Date
DataNascimento = [Ô]07/01/1978[Ô] [ô] aqui busque a data do cadastro...
MsgBox DateDiff([Ô]yyyy[Ô], DataNascimento, Date)
Dim DataNascimento As Date
DataNascimento = [Ô]07/01/1978[Ô] [ô] aqui busque a data do cadastro...
MsgBox DateDiff([Ô]yyyy[Ô], DataNascimento, Date)
As soluções apresentadas até agora só calculam a diferença do ano final e inicial, sem considerar o dia e mês.
Em outras palavras, considerando que hoje é dia 29/03/2012,
a) quem nasceu em 27/03/2000 tem 12 anos pois 2012-2000=12
b) quem nasceu em 30/03/2000 tem 11 anos, pois ainda não aniversariou e o calculo apresentado nas soluções não considera isso.
O calculo correto deve ser:
Dim DataNascimento As Date
Dim Anos As Integer
DataNascimento = [Ô]30/03/2000[Ô]
Anos = DateDiff([Ô]yyyy[Ô], DataNascimento, Date)
If (Month(DataNascimento) * 100) + Day(DataNascimento) > (Month(Date) * 100) + Day(Date) Then
Anos = Anos - 1
End If
MsgBox [Ô]Idade: [Ô] & Anos
Em outras palavras, considerando que hoje é dia 29/03/2012,
a) quem nasceu em 27/03/2000 tem 12 anos pois 2012-2000=12
b) quem nasceu em 30/03/2000 tem 11 anos, pois ainda não aniversariou e o calculo apresentado nas soluções não considera isso.
O calculo correto deve ser:
Dim DataNascimento As Date
Dim Anos As Integer
DataNascimento = [Ô]30/03/2000[Ô]
Anos = DateDiff([Ô]yyyy[Ô], DataNascimento, Date)
If (Month(DataNascimento) * 100) + Day(DataNascimento) > (Month(Date) * 100) + Day(Date) Then
Anos = Anos - 1
End If
MsgBox [Ô]Idade: [Ô] & Anos
Essa não tem erro:
Public Function Data_Idade(ByVal datEmpDateOfBirth As Variant) As String
If Not IsDate(datEmpDateOfBirth) Then Exit Function
Data_Idade = Int(DateDiff([Ô]y[Ô], CDate(datEmpDateOfBirth), Date) / 365.25)
End Function
Public Function Data_Idade(ByVal datEmpDateOfBirth As Variant) As String
If Not IsDate(datEmpDateOfBirth) Then Exit Function
Data_Idade = Int(DateDiff([Ô]y[Ô], CDate(datEmpDateOfBirth), Date) / 365.25)
End Function
Estou interessado nesta questão,pois houve respostas objetivas para o CÃLCULO.Mas o que o Nilton pergunta,
é como fazer a consulta.
Codigo, Nome, Data de Nascimento
01 Pedro 10/10/1961
e ela sai com o resultado.
Codigo, Nome, Idade
01 Pedro 50
Então gostaria de saber como se este tipo de consulta.Garanto que não sei e nunca imaginei.
Espero que alguém responda.
Valeu.
é como fazer a consulta.
Codigo, Nome, Data de Nascimento
01 Pedro 10/10/1961
e ela sai com o resultado.
Codigo, Nome, Idade
01 Pedro 50
Então gostaria de saber como se este tipo de consulta.Garanto que não sei e nunca imaginei.
Espero que alguém responda.
Valeu.
é dificil aplicar o cálculo de idade diretamente num select, por isso não foi dado muita enfase.
A solução é :
1) Fazer um [Ô]SELECT * FROM TABELA[Ô] para obter os dados.
2) Aplicar o cálculo de idade no resultado.
3) Gravar os dados desejados em uma tabela temporária para fins de relatório ou exibi-los diretamente en algum MsFlecGrid.
Obs: Uso bastante o recurso de tabela temporária e nunca tive problemas de performace.
A solução é :
1) Fazer um [Ô]SELECT * FROM TABELA[Ô] para obter os dados.
2) Aplicar o cálculo de idade no resultado.
3) Gravar os dados desejados em uma tabela temporária para fins de relatório ou exibi-los diretamente en algum MsFlecGrid.
Obs: Uso bastante o recurso de tabela temporária e nunca tive problemas de performace.
larga a nao neh galera todas respostas tão erradas
Precisa do tratamento do ano bissexto ai
Precisa do tratamento do ano bissexto ai
o ideal era gravar no ato do cadastro , agora com mais de 30.000
Dar um UPDATE em toda tabela com 30 mil registros e a coisa mais fácil,duro e fazer fazer este tipo de
consulta.Se tiver está consulta é só usar o For Each.
consulta.Se tiver está consulta é só usar o For Each.
Tópico encerrado , respostas não são mais permitidas