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

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;

Nenhum comentário:

Postar um comentário