Manipulando Datas
Pessoal,
Existe alguma função pronta para definir o primeiro e último dia de um Mês??
Exemplo: Data atual = 15/05/2003
Primeiro dia = 1
Último: 31
Se houver, podem me enviar um pequeno exemplo? Grato.
Duilton
Existe alguma função pronta para definir o primeiro e último dia de um Mês??
Exemplo: Data atual = 15/05/2003
Primeiro dia = 1
Último: 31
Se houver, podem me enviar um pequeno exemplo? Grato.
Duilton
Duilton
Curtidas 0
Respostas
Oberdan
30/05/2003
Eu tenho duas funcões separadas, uma extrai o último dia do mês e a outra o primeira. Acho que pode ajudar:
//Obter a data do último dia do mês, ou último dia útil, de uma data informada
Function LastDayOfMonth (Data : TDateTime; lSabDom : Boolean) : TDateTime;
var
Ano, Mes, Dia : word;
AuxData : TDateTime;
DiaDaSemana : Integer;
begin
AuxData := FirstDayOfMonth (NextMonth (Data), False) - 1;
if lSabDom Then
begin
DecodeDate (Auxdata, Ano, Mes, Dia);
DiaDaSemana := DayOfWeek (AuxData);
if DiaDaSemana = 1 Then
Dia := Dia - 2
else
if DiaDaSemana = 7 Then
Dec (Dia);
AuxData := EnCodeDate (Ano, Mes, Dia);
end;
LastDayOfMonth := AuxData;
end;
Obtendo data do primeiro dia util do mês
Function FirstDayOfMonth (Data : TDateTime; lSabDom : Boolean) : TDateTime;
var
Ano, Mes, Dia : word;
DiaDaSemana : Integer;
begin
DecodeDate (Data, Ano, Mes, Dia);
Dia := 1;
if lSabDom Then
begin
DiaDaSemana := DayOfWeek (Data);
if DiaDaSemana = 1 Then
Dia := 2
else
if DiaDaSemana = 7 Then
Dia := 3;
end;
FirstDayOfMonth := EncodeDate (Ano, Mes, Dia);
end;
[]
Oberdan
//Obter a data do último dia do mês, ou último dia útil, de uma data informada
Function LastDayOfMonth (Data : TDateTime; lSabDom : Boolean) : TDateTime;
var
Ano, Mes, Dia : word;
AuxData : TDateTime;
DiaDaSemana : Integer;
begin
AuxData := FirstDayOfMonth (NextMonth (Data), False) - 1;
if lSabDom Then
begin
DecodeDate (Auxdata, Ano, Mes, Dia);
DiaDaSemana := DayOfWeek (AuxData);
if DiaDaSemana = 1 Then
Dia := Dia - 2
else
if DiaDaSemana = 7 Then
Dec (Dia);
AuxData := EnCodeDate (Ano, Mes, Dia);
end;
LastDayOfMonth := AuxData;
end;
Obtendo data do primeiro dia util do mês
Function FirstDayOfMonth (Data : TDateTime; lSabDom : Boolean) : TDateTime;
var
Ano, Mes, Dia : word;
DiaDaSemana : Integer;
begin
DecodeDate (Data, Ano, Mes, Dia);
Dia := 1;
if lSabDom Then
begin
DiaDaSemana := DayOfWeek (Data);
if DiaDaSemana = 1 Then
Dia := 2
else
if DiaDaSemana = 7 Then
Dia := 3;
end;
FirstDayOfMonth := EncodeDate (Ano, Mes, Dia);
end;
[]
Oberdan
GOSTEI 0