Data de Aniversário
Bom dia!
Estou com uma dúvida, e gostaria que pudessem me ajudar. Eu tenho um cadastro de clientes e gostaria que quando eu abrisse essa tela, me desse uma mensagem dizendo se tem aniversariantes nesse dia. Bom, o problema é que não estou conseguindo comparar apenas o dia e o mês, já que o campo que eu tenho é data de nascimento.
Por favor, como posso fazer isso?
´
Utilizo o Delphi 5 e tabela Paradox 7.
Desde já, muito obrigado!
Estou com uma dúvida, e gostaria que pudessem me ajudar. Eu tenho um cadastro de clientes e gostaria que quando eu abrisse essa tela, me desse uma mensagem dizendo se tem aniversariantes nesse dia. Bom, o problema é que não estou conseguindo comparar apenas o dia e o mês, já que o campo que eu tenho é data de nascimento.
Por favor, como posso fazer isso?
´
Utilizo o Delphi 5 e tabela Paradox 7.
Desde já, muito obrigado!
Jonpline
Curtidas 0
Respostas
Fortaum
29/12/2006
var
dia, mes: word;
begin
mes:= MonthOf(DatadeNascimento);
dia:= DayOf(DatadeNascimento);
end;
- Dessa forma vc retira o dia e mês da data de nascimento e faz as comparações necessárias...
dia, mes: word;
begin
mes:= MonthOf(DatadeNascimento);
dia:= DayOf(DatadeNascimento);
end;
- Dessa forma vc retira o dia e mês da data de nascimento e faz as comparações necessárias...
GOSTEI 0
Jonpline
29/12/2006
Amigo, eu tentei assim:
var
dia, mes: word;
begin
mes:=Monthof.Ddados.Tcliente(DataNasci).AsDATetime;
dia:=DayOf.Ddados.Tecliente(DataNasci).AsDateTime;
Mas o Delphi apresenta o seguinte erro:
´Undeclared identfier: ´Monthof´;
Eu gostaria de saber se preciso declarar algo na sesão uses ou se estou fazendo alguma coisa errada.
Desde já agradeço.
var
dia, mes: word;
begin
mes:=Monthof.Ddados.Tcliente(DataNasci).AsDATetime;
dia:=DayOf.Ddados.Tecliente(DataNasci).AsDateTime;
Mas o Delphi apresenta o seguinte erro:
´Undeclared identfier: ´Monthof´;
Eu gostaria de saber se preciso declarar algo na sesão uses ou se estou fazendo alguma coisa errada.
Desde já agradeço.
GOSTEI 0
Fortaum
29/12/2006
- Foi mal... no delphi 5 não existe essa unit com essas funções..
- Não trabalhei com paradox, mas tenta isso na SQL direto no banco:
extract(day from nomedocampodatadatabela )
extract(month from nomedocampodatadatabela )
- Não trabalhei com paradox, mas tenta isso na SQL direto no banco:
extract(day from nomedocampodatadatabela )
extract(month from nomedocampodatadatabela )
GOSTEI 0
Jonpline
29/12/2006
Então, eu tentei, mas só funciona um extract por SQL...
Não existe outro comando que faça isso?
Desculpe estar perguntando de novo, mas já pesquisei e não acho a solução em lugar algum.
Desde já, muito grato.
Não existe outro comando que faça isso?
Desculpe estar perguntando de novo, mas já pesquisei e não acho a solução em lugar algum.
Desde já, muito grato.
GOSTEI 0
Jonpline
29/12/2006
Desculpe-em, tentei assim:
Select
extract(day from Datanasci ) From Cliente and
extract(month from Datanasci ) From Cliente
Select
extract(day from Datanasci ) From Cliente and
extract(month from Datanasci ) From Cliente
GOSTEI 0
Fortaum
29/12/2006
Select
*
From
Cliente
where
extract(day from Datanasci ) = DiaqueVoceQuerFiltar
and
extract(month from Datanasci ) = MesqueVoceQuerFiltar
Uma crítica construtiva:
Estude SQL pois sua dificuldade foi em montar o script!
Valeu!
*
From
Cliente
where
extract(day from Datanasci ) = DiaqueVoceQuerFiltar
and
extract(month from Datanasci ) = MesqueVoceQuerFiltar
Uma crítica construtiva:
Estude SQL pois sua dificuldade foi em montar o script!
Valeu!
GOSTEI 0
Brasidata
29/12/2006
Amigo, eu tentei assim:
var
dia, mes: word;
begin
mes:=Monthof.Ddados.Tcliente(DataNasci).AsDATetime;
dia:=DayOf.Ddados.Tecliente(DataNasci).AsDateTime;
Mas o Delphi apresenta o seguinte erro:
´Undeclared identfier: ´Monthof´;
A sintaxe correta é:
var dia, mes: word; begin mes:=Monthof(Ddados.Tcliente.FieldByName(´DataNasci´).AsDateTime); dia:=DayOf(Ddados.Tcliente.FieldByName(´DataNasci´).AsDateTime); end;
Ou ainda:
var dia, mes: word; begin mes:=Monthof(Ddados.TclienteDataNasci.AsDateTime); dia:=DayOf(Ddados.TclienteDataNasci.AsDateTime); end;
Dependendo da forma como você se referencia à coluna [b:14b0107618]DataNasci[/b:14b0107618]
Em ambos os casos você deverá declarar [b:14b0107618]DateUtils[/b:14b0107618] na cláusula [b:14b0107618]uses[/b:14b0107618] da Unit
Bom trabalho!
GOSTEI 0
Jonpline
29/12/2006
Valeu pela diga amigo, mas na biblioteca do delphi 5 não tem este DateUtils
GOSTEI 0
Aroldo Zanela
29/12/2006
Colega,
Esta unit foi originalmente concebida pelos autores da RxLib. No caso das funções cidadas, são obtidas facilmente em qualquer versão Delphi 32.
Veja as implementações:
Esta unit foi originalmente concebida pelos autores da RxLib. No caso das funções cidadas, são obtidas facilmente em qualquer versão Delphi 32.
Veja as implementações:
function DayOf(const AValue: TDateTime): Word; var LYear, LMonth: Word; begin DecodeDate(AValue, LYear, LMonth, Result); end; function MonthOf(const AValue: TDateTime): Word; var LYear, LDay: Word; begin DecodeDate(AValue, LYear, Result, LDay); end;
GOSTEI 0
Jose Almeida
29/12/2006
Um exemplo simples e didático.
Na tabela TabNomes, temos os campos Nome e Nasc.
A procedure abaixo seleciona os aniversariantes
do dia de hoje, se houver.
type
procedure AniDia;
procedure Button1Click(Sender: TObject);
................................
implementation
procedure TForm1.AniDia;
var
Dia,Mes:string;
AA,MM,DD: word;
begin
DecodeDate(Now,AA,MM,DD);
Dia:=IntToStr(DD);
Mes:=IntToStr(MM);
Query1.SQL.Clear;
Query1.SQL.Add(´Select*From TabNomes ´);
Query1.SQL.Add(´Where Extract(Month From Nasc)=´+Mes+´and Extract(Day From Nasc)=´+Dia);
Query1.SQL.Add(´Order By Nasc´);
Query1.Active:= True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
AniDia;
end;
Na tabela TabNomes, temos os campos Nome e Nasc.
A procedure abaixo seleciona os aniversariantes
do dia de hoje, se houver.
type
procedure AniDia;
procedure Button1Click(Sender: TObject);
................................
implementation
procedure TForm1.AniDia;
var
Dia,Mes:string;
AA,MM,DD: word;
begin
DecodeDate(Now,AA,MM,DD);
Dia:=IntToStr(DD);
Mes:=IntToStr(MM);
Query1.SQL.Clear;
Query1.SQL.Add(´Select*From TabNomes ´);
Query1.SQL.Add(´Where Extract(Month From Nasc)=´+Mes+´and Extract(Day From Nasc)=´+Dia);
Query1.SQL.Add(´Order By Nasc´);
Query1.Active:= True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
AniDia;
end;
GOSTEI 0