Sonda Web                                Directório - a sua melhor selecção de sites
Minha foto
Analista Programador Sênior. Delphiano desde 1998. Programador Delphi, PHP e Java

quarta-feira, 28 de dezembro de 2011

Retorna data do primeiro dia do mês, ou primeiro dia útil

// Retorna data do primeiro dia do mês, ou primeiro dia útil
// ===================================================================
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;

Datas

// Retorna a maior data anterior a uma data inválida
// ===================================================================
function MenorDataValida (Ano, Mes, Dia : Word) : TDateTime;
var
  Continua : Boolean;
  DataAux  : TDateTime;
begin
  Continua := True;
  DataAux  := Date;
  while Continua do
  try
    DataAux  := EncodeDate (Ano, Mes, Dia);
    Continua := False;
  except
    Dec(Dia);
  end;
  MenorDataValida := DataAux;
end;



// Retorna uma data no Mês seguinte a uma data informada
// ===================================================================
function NextMonth (Data : TDateTime) : TDateTime;
var
  Ano, Mes, Dia : word;
begin
  DecodeDate(Data, Ano, Mes, Dia);
  if Mes = 12 then
  begin
    Mes := 1;
    Inc (Ano);
  end else
  Inc (Mes);
  NextMonth := MenorDataValida (Ano, Mes, Dia);
end;

segunda-feira, 26 de dezembro de 2011

Trabalhando com Datas no Delphi

// Retorna o ano da data informada
// ===================================================================
function Ano(const Data: TDateTime): Integer;
var
  Ano, Mes, Dia : Word;
begin
  DecodeDate(Data, Ano, Mes, Dia);
  Result := Ano;
end;

Agora Em cima desta função você poderá retornar o Ano, Mes ou o Dia

Boas Festas

Boa Tarde Delphianos,

Feliz Natal ... atrasado ...rsrsrsr ... e Um Feliz 2012 ... com muito bytes .... escovando muito código !
Em 2012, prometo a todos que colocar várias dicas delphi em meu blog.

Grande Abraço