📄 tdsc.pas
字号:
{******************************************************************************}
{Copyright(C) 2007,Pefine Security Lab }
{All rights reserved. }
{ }
{Abstract:View Win32 PE file information. }
{ }
{Version:1.01 }
{Author:WindRand }
{Date:2007-01-20 }
{******************************************************************************}
unit TDSC;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls, PublicUnit;
type
TTDSCFrm = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
EnEdit: TEdit;
EnTime: TDateTimePicker;
EnDate: TDateTimePicker;
Panel1: TPanel;
Button1: TButton;
GroupBox2: TGroupBox;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
DeEdit: TEdit;
DeTime: TDateTimePicker;
DeDate: TDateTimePicker;
Panel2: TPanel;
Button2: TButton;
Panel3: TPanel;
Button3: TButton;
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
TDSCFrm: TTDSCFrm;
implementation
{$R *.dfm}
procedure TTDSCFrm.FormShow(Sender: TObject);
begin
With TDSCFrm do
begin
Left:=(Screen.Width div 2)-(Width div 2);
Top:=(Screen.Height div 2)-(Height div 2);
end;
end;
procedure TTDSCFrm.FormCreate(Sender: TObject);
begin
//默认值
EnTime.Time:=StrToTime('00:00:00');
DeTime.Time:=StrToTime('00:00:00');
EnDate.Date:=StrToDate('2000-01-01');
DeDate.Date:=StrToDate('2000-01-01');
end;
procedure TTDSCFrm.Button1Click(Sender: TObject);
var
Hour,Min,Sec,MSec:Word;
Year,Month,Day:Word;
tDay,tHour,tMin,tSec:Integer;
tCount:Int64;
begin
DecodeDate(EnDate.Date,Year,Month,Day);
DecodeTime(EnTime.Time,Hour,Min,Sec,MSec);
//计算出有多少天*小时*分*秒
tDay:=Trunc(EnDate.Date-StrToDate('1970-01-01'))*24*60*60;
tHour:=Hour*60*60;
tMin:=Min*60;
tSec:=Sec;
tCount:=tDay+tHour+tMin+tSec;
EnEdit.Text:=IntToHex(tCount,8);
end;
procedure TTDSCFrm.Button2Click(Sender: TObject);
var
iDateTime,iYear,iDay:Integer;
iHour,iMin,iSec:Integer;
TempDate,GMTDate:TDate;
TempTime,GMTTime:TTime;
Year,Month,Day:Word;
Hour,Min,Sec,MSec:Word;
i:Integer;
RInt:Integer;
begin
RInt:=0;
if DeEdit.Text='' then
DeEdit.Text:='00000000';
GMTDate:=StrToDate('1970-01-01');
GMTTime:=StrToTime('00:00:00');
DecodeDate(GMTDate,Year,Month,Day);
DecodeTime(GMTTime,Hour,Min,Sec,MSec);
iDateTime:=HexToInt(DeEdit.Text);
//计算文件创建的年份
iYear:=iDateTime div (365*24*60*60);
Year:=Year+iYear;
//计算文件除创建整年份以外还有多少天
iDay:=(iDateTime mod (365*24*60*60)) div (24*60*60);
//把瑞年的年份数计算出来
for i:=1970 to Year-1 do
begin
if (i mod 4 = 0) and ((i mod 100 <> 0) or (i mod 400 = 0)) then
RInt:=RInt+1;
end;
//计算文件创建的时间(几时)
iHour:=((iDateTime mod (365*24*60*60)) mod (24*60*60)) div (60*60);
Hour:=Hour+iHour;
//计算文件创建的时间(几分)
iMin:=(((iDateTime mod (365*24*60*60)) mod (24*60*60)) mod (60*60)) div 60;
Min:=Min+iMin;
//计算文件创建的时间(几秒)
iSec:=(((iDateTime mod (365*24*60*60)) mod (24*60*60)) mod (60*60)) mod 60;
Sec:=Sec+iSec;
//合并日期和时间
TempDate:=EncodeDate(Year,Month,Day);
TempTime:=EncodeTime(Hour,Min,Sec,MSec);
//由于瑞年的二月份有29天,瑞年年份一年有366年天,而平年一年有365天,上面
//是用365计算的,所以要减去瑞年年份多出来的一天
DeDate.Date:=TempDate+iDay-RInt;
DeTime.Time:=TempTime;
end;
procedure TTDSCFrm.Button3Click(Sender: TObject);
begin
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -