Boa Tarde.
As vezes a gente se depara com alguns problemas como saber a data de criação de um arquivo ou .exe, por isso abaixo vou colocar uma função que faz este processo pra vcs. Claro que esta função é bem simples podendo ser melhorar a gosto pessoal de cada um, mas segue a que uso normalmente em questão simples.
function TForm1.DATADECRIACAO(Arq: string): TDateTime;
var ffd:TWin32FindData;
dft :DWORD;
lft :TFileTime;
h :THandle;
begin
h:= Windows.FindFirstFile(PChar(Arq), ffd);
try
if (INVALID_HANDLE_VALUE <> h) then begin
FileTimeToLocalFileTime(ffd.ftCreationTime,lft);
FileTimeToDosDateTime(lft, LongRec(dft).Hi, LongRec(dft).Lo);
Result := FileDateToDateTime(dft);
end
finally
Windows.FindClose(h);
end;
end;
Exemplo de uso da função.
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text := DateToStr(DATADECRIACAO('C:\DATA.txt'));
end;
ADSENSE
ADSENSE
Mostrando postagens com marcador data. Mostrar todas as postagens
Mostrando postagens com marcador data. Mostrar todas as postagens
segunda-feira, 3 de outubro de 2011
sábado, 16 de outubro de 2010
Function IncAno
Incrementa e retorna a data do parâmetro Data com a qunatidade de anos do parâmetro valor.
function IncAno(Data: TDate; Valor: integer):TDate;var A,M,D: Word;begin
DecoDeDate(Data,A,M,D);
A:=A+Valor;
Result:=StrToDate(FormatFloat('00/',D)+FormatFloat('00/',M)+IntToStr(A));end;
Usando:
procedure TForm1.BitBtn27Click(Sender: TObject);begin
ShowMessage('Ano : '+DateToStr(IncAno(StrToDate(Edit2.Text),1)));end;
function IncAno(Data: TDate; Valor: integer):TDate;var A,M,D: Word;begin
DecoDeDate(Data,A,M,D);
A:=A+Valor;
Result:=StrToDate(FormatFloat('00/',D)+FormatFloat('00/',M)+IntToStr(A));end;
Usando:
procedure TForm1.BitBtn27Click(Sender: TObject);begin
ShowMessage('Ano : '+DateToStr(IncAno(StrToDate(Edit2.Text),1)));end;
Function DiasNoMes
Retorna a quantidade de dias pertinentes ao mês da data passado no parâmetro Data. Esta função usa a função IsLeapYear para saber se o ano é bissexto.
function DiasNoMes(Data:TDate):integer;var Y,M,D : Word; Dias : integer;
begin
Dias:=0;
DecoDeDate(Data,Y,M,D); //Especificando o número de dias de cada mes
if M = 1 then Dias:=31;
if M = 2 then begin
if IsLeapYear (Y) then Dias:=29 else Dias:=28;
end;
if M = 3 then Dias :=31;
if M = 4 then Dias :=30;
if M = 5 then Dias :=31;
if M = 6 then Dias :=30;
if M = 7 then Dias :=31;
if M = 8 then Dias :=31;
if M = 9 then Dias :=30;
if M = 10 then Dias :=31;
if M = 11 then Dias :=30;
if M = 12 then Dias :=31; //Retornando o número do mês especificado
Result:=Dias;
end;
begin
Dias:=0;
DecoDeDate(Data,Y,M,D); //Especificando o número de dias de cada mes
if M = 1 then Dias:=31;
if M = 2 then begin
if IsLeapYear (Y) then Dias:=29 else Dias:=28;
end;
if M = 3 then Dias :=31;
if M = 4 then Dias :=30;
if M = 5 then Dias :=31;
if M = 6 then Dias :=30;
if M = 7 then Dias :=31;
if M = 8 then Dias :=31;
if M = 9 then Dias :=30;
if M = 10 then Dias :=31;
if M = 11 then Dias :=30;
if M = 12 then Dias :=31; //Retornando o número do mês especificado
Result:=Dias;
end;
Assinar:
Postagens (Atom)