data inicial e data final de um periodo....

06/01/2006

olá,

gostaria de saber como faço para pegar uma data inicial e final de um periodo...exemplo:

Data de hoje : 05/01/2006

eu gostaria de pegar pelo date() a datainicial := 01/01/2006 e a datafinal 31/01/2006

valeu galera.


Cavalcanti.fabio

Respostas

06/01/2006

Caninha51

Usa a unit DateUtils

var
  DataIni, DataFin: TDateTime;
begin
  DataIni := EncodeDate(YearOf(Date),MonthOf(Date),1);// Jah q todo mês começa no dia 1 
  DataFin := EncodeDate(YearOf(Date),MonthOf(Date),DaysInMonth(Date)); // DaysInMonth retorna a quantidade de dias no mes passado como parametro
  Showmessage(Format(´Inicio: ¬s - Fim: ¬s´,[DateToStr(DataIni),DateToStr(DataFin)&93;))
end;


flw


Responder Citar

06/01/2006

Pro-luck

Num form coloque dois componentes do tipo DateTimePicker:
Coloque dois botões, um para o OK e outro para o Cancelar.
No evento OnClick do botão OK digite o seguinte:

Var
Inicio: String;
Final: String;
begin
If DataF.Date < DataI.Date then
begin
ShowMessage(´Intervalo de datas inválido, observe que a data inicial é maior que a data final!!!´);
DataF.Date := DataI.Date
end
Else
begin
Inicio := DateToStr(DataI.Date);
Final := DateToStr(DataF.Date);
dm_.NomeDaTabela.Close;
dm_.NomeDaTabela.SQL.Clear;
dm_.NomeDaTabela.SQL.Text := (´Select * from ContasPagar WHERE Vencimento >= :pInicial and Vencimento <= :pFinal ORDER BY Vencimento´);
dm_.NomeDaTabela.ParamByName(´pInicial´).AsDateTime := StrToDate(Inicio);
dm_.NomeDaTabela.ParamByName(´pFinal´).AsDateTime := StrToDate(Final);
dm_.NomeDaTabela.Prepare;
dm_.NomeDaTabela.Open;
end;
Rel_ContasPagarVenc_ := TRel_ContasPagarVenc_.Create(Application);
Rel_ContasPagarVenc_.QrpContasPagarVenc.Preview;
end;


Vc deverá criar também o relatório onde serão exibidos os dados que vc pediu.
Neste exemplo, eu utilizei o Rel_ContasPagarVenc_.

Espero ter ajudado...

Té+.


Responder Citar

06/01/2006

Techsoft

Eu uso o seguinte:

Com duas variáveis ou o q for, datetimepicker, tantofaz... mas eh o seguinte:

dataini := strtodate(FormatDateTime(´01/MM/yyyy´,date));
datafim := incmonth(dataini,1)-1;

ou seja, faço uma formatação na data de hoje, fixando o dia em 01, após aplico a função incmonth incrementando em 1 mês que automaticamente leva esta data exatamente um mês após e então dimuo 1 dia.


Responder Citar