segunda-feira, 14 de setembro de 2009

Quantas segundas tem num mês?

Unit Unit1;

interface

uses SysUtils;

function UltimoDiaMes(Mdt: TDateTime) : TDateTime;
function QtdDiaSemana(Mdt: TDateTime; DiaSemana : Integer) : Integer;

implementation

function QtdDiaSemana(Mdt: TDateTime; DiaSemana : Integer) : Integer;
{Mdt = qualquer dia do mes DiaSemana = dia da semana procurado ( 1 a 7) retorna o quantidade de dias}
var
ano, mes, UltimoDia : word;
mDtTemp : TDateTime;
I : Integer;
begin
MdtTemp := UltimodiaMes(Mdt);
Decodedate(MdtTemp, ano, mes, UltimoDia);
MdtTemp := EncodeDate(ano,mes,1);
result := 0;
for I := 1 to UltimoDia do
begin
if DayOfWeek(Mdttemp) = DiaSemana then
Inc(Result);
MdtTemp := Mdttemp + 1;
end;
end;

function UltimoDiaMes(Mdt: TDateTime) : TDateTime;
{ retorna o ultimo dia o mes, de uma data fornecida}
var
ano, mes, dia : word;
mDtTemp : TDateTime;
begin
Decodedate(mDt, ano, mes, dia);
mDtTemp := (mDt - dia) + 33;
Decodedate(mDtTemp, ano, mes, dia);
Result := mDtTemp - dia;
end;

end.


p.545

Nenhum comentário:

Postar um comentário