📄 main.~pas
字号:
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DateUtils;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
ButToStr: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Button3: TButton;
Button4: TButton;
Edit3: TEdit;
ButSetModify: TButton;
ButGetModify: TButton;
ButBrowse: TButton;
OpenDialog1: TOpenDialog;
procedure ButToStrClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure ButBrowseClick(Sender: TObject);
procedure ButSetModifyClick(Sender: TObject);
procedure ButGetModifyClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function GetDateTimeFromSystemT(T: Integer): TDateTime;
function SetFileDateVersion(F: String; T: Integer): Integer;
function GetFileDateVersion(F: String): Integer;
var
Form1: TForm1;
D1970Local, D1970System: TDateTime;
implementation
{$R *.dfm}
function GetDateTimeFromSystemT(T: Integer): TDateTime;
begin
Result := IncSecond(D1970Local, T);
end;
function GetSystemTforDateTime(T: TDateTime): Integer;
begin
Result := SecondsBetween(T, D1970Local);
end;
function GetStrFromSystemT(T: Integer): string;
begin
Result := DateTimeToStr(IncSecond(D1970Local, T));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
D1970Local := StrToDateTime('1970-01-01 08-00-00');
Edit1.Text := IntToStr(GetSystemTforDateTime(Now));
Edit2.Text := DateTimeToStr(Now);
end;
procedure TForm1.ButToStrClick(Sender: TObject);
begin
Edit2.Text := GetStrFromSystemT(StrToInt(Edit1.Text));
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text := IntToStr(GetSystemTforDateTime(StrToDateTime(Edit2.Text)));
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Edit1.Text := IntToStr(GetSystemTforDateTime(Now));
Edit2.Text := DateTimeToStr(Now);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.ButBrowseClick(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Edit3.Text := OpenDialog1.FileName;
ButGetModifyClick(nil);
end;
end;
procedure TForm1.ButSetModifyClick(Sender: TObject);
begin
SetFileDateVersion(Edit3.Text, StrToInt(Edit1.Text));
end;
procedure TForm1.ButGetModifyClick(Sender: TObject);
begin
Edit1.Text := IntToStr(GetFileDateVersion(Edit3.Text));
ButToStrClick(nil);
end;
function SetFileDateVersion(F: String; T: Integer): Integer;
var
FileHandle : Integer;
MTL, MT: FileTime;
ST: SystemTime;
DT: TDateTime;
begin
//Result := FileSetDate(F, DateTimeToFileDate(DT));
Result := -1;
FileHandle := FileOpen(F, fmOpenWrite or fmShareDenyNone);
if FileHandle > 0 then
begin
try
DT := GetDateTimeFromSystemT(T);
DateTimeToSystemTime(DT, ST);
SystemTimeToFileTime(ST, MTL);
LocalFileTimeToFileTime(MTL, MT);
SetFileTime(FileHandle, @MT, nil, @MT);
Result := 1;
except
end;
FileClose(FileHandle);
end;
end;
function GetFileDateVersion(F: String): Integer;
var
FileHandle : Integer;
MT, MTL: FileTime;
ST: SystemTime;
DT: TDateTime;
begin
FileHandle := FileOpen(F, fmOpenRead or fmShareDenyNone);
if FileHandle > 0 then
begin
try
GetFileTime(FileHandle, nil, nil, @MT);
FileTimeToLocalFileTime(MT, MTL);
FileTimeToSystemTime(MTL, ST);
DT := SystemTimeToDateTime(ST);
Result := GetSystemTforDateTime(DT);
//Result := FileGetDate(FileHandle);
except
Result := -1;
end;
FileClose(FileHandle);
end
else
Result := -1;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -