
Delphi 语言的 DateUtils 单元提供了功能丰富的日期、时间函数,针对“计算程序运行时间”这一应用,可以参考使用以下功能函数:
Now :获取当前的日期和时间
Now 函数的 Note 提示,Now 获取的时间精确到最接近的秒,如果还需要更精确的时间(比如:毫秒级),可以考虑使用以下 Win API 函数:
GetLocalTime、GetSystemTime 或 GetTickCout 等。
MilliSecondsBetween 函数:计算两个时间之间的差值(按毫秒计算)
SecondsBetween 函数:计算两个时间之间的差值(按秒计算)
综合以上功能函数的资料,就可以着手编写应用的代码了,以下是示例:
varForm1: TForm1;
AppTime: TDateTime;
implementation
uses SystemDateUtils;
{$R dfm}
procedure TForm1FormCreate(Sender: TObject);
var SysTime: TSystemTime;
begin
//AppTime = Now; //以秒计算时间
GetLocalTime(SysTime);
AppTime := SystemTimeToDateTime(SysTime);
end;
procedure TForm1FormDestroy(Sender: TObject);
var
SysTime: TSystemTime;
CurTime: TDateTime;
begin
//ShowMessage('程序共运行了 ' + SecondsBetween(AppTime,Now)ToString + ' 秒');
GetLocalTime(SysTime);
CurTime := SystemTimeToDateTime(SysTime);
s := '程序共运行了 ' + MilliSecondsBetween(AppTime,CurTime)ToString + ' 毫秒';
MessageBox(Handle, PChar(s), '信息提示', MB_OK + MB_ICONINFORMATION);
end;
代码运行截图:
是不是这张这样的
呵呵,源码是:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw;
type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R dfm}
procedure TForm1FormCreate(Sender: TObject);
begin
webbrowser1Navigate('>
end;
end
获取文件的修改时间你看看下面的方法能不能用:
Windows 提供一个函数 GetFileTime 做此项 *** 作,在 Delphi 中可方便地调用,示例如下:
procedure GetFileLastAccessTime(FileName: PChar);
var
CreateFT, LastAccessFT, LastWriteFT: TFileTime;
ST: TSystemTime;
F: Integer;
begin
{ 首先要用Windows的标准API函数以读方式打开文件 }
F := CreateFile(FileName, GENERIC_READ, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if F=INVALID_HANDLE_VALUE then
begin
ShowMessage(’Can not open file!’);
Exit;
end;
{ 取文件时间 }
if GetFileTime(F, @CreateFT, @LastAccessFT, @LastWriteFT) then
begin
{ 转换为系统时间并显示 }
FileTimeToSystemTime(LastAccessFT, ST);
Label1Caption := Format(’%d-%d-%d, %d:%d:%d’,
[STwYear, STwMonth, STwDay, STwHour, STwMinute,STwSecond]);
end;
CloseHandle(F); { 记住关闭文件 }
end;
Date 传回目前的日期
Unit SysUtils
函数原型 function Date: TDateTime;
范例 procedure TForm1Button1Click(Sender: TObject);
begin
Label1Caption := 'Today is ' + DateToStr(Date);
end;
------------------------------------------
DateTimeToStr 日期时间转换成内定型字串(1996/12/20 09:12:20 PM)
------------------------------------------
Unit SysUtils
函数原型 function DateTimeToStr(DateTime: TDateTime): string;
范例 procedure TForm1Button1Click(Sender: TObject);
begin
Label1Caption := DateTimeToStr(Now);
end;
--------------------------------------------------------
DateTimeToString 日期时间转换成自定型字串
-------------------------------------------------------
Unit SysUtils
函数原型 procedure DateTimeToString(var Result: string; const Format:
string; DateTime: TDateTime);
范例 procedure TForm1FormCreate(Sender: TObject);
var
s:string;
begin
DateTimeToString(s,'dddd,mmmm d,yyyy "at" hh:mm
AM/PM',Now);
Label1Caption :=s;
end;
结果 星期五,十二月 20,1996 at 09:20 PM
-----------------------------------------------------------------------------
Format格式叁考下面FormatDateTime
--------------------------------------------------------
DateToStr 日期转换成内定型字串(1996/12/20)
--------------------------------------------------------
Unit SysUtils
函数原型 function DateToStr(Date: TDateTime): string;
范例
procedure TForm1Button1Click(Sender: TObject);
begin
Label1Caption := 'Today is ' + DateToStr(Date);
end;
# Date, DateToStr Example
--------------------------------------------------------
DayOfWeek 求叁数日期是星期几
--------------------------------------------------------
Unit SysUtils
函数原型 function DayOfWeek(Date: TDateTime): Integer;
说明 传回值是一整数,1~7
星期日为1
范例
procedure TForm1Button1Click(Sender: TObject);
var
ADate: TDateTime;
days: array[17] of string;
begin
days[1] := 'Sunday';
days[2] := 'Monday';
days[3] := 'Tuesday';
days[4] := 'Wednesday';
days[5] := 'Thursday';
days[6] := 'Friday';
days[7] := 'Saturday';
ADate := StrToDate(Edit1Text);
ShowMessage(Edit1Text + ' is a ' + days[DayOfWeek(ADate)];
end;
# StrToDate, DayOfWeek Example
--------------------------------------------------------
DecodeDate 将TDateTime型态的日期变数,转为Word型态
--------------------------------------------------------
范例
procedure TForm1Button1Click(Sender: TObject);
var
Present: TDateTime;
Year, Month, Day, Hour, Min, Sec, MSec: Word;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
Label1Caption := 'Today is Day ' + IntToStr(Day) + ' of Month '
+ IntToStr(Month) + ' of Year ' + IntToStr(Year);
DecodeTime(Present, Hour, Min, Sec, MSec);
Label2Caption := 'The time is Minute ' + IntToStr(Min) + ' of Hour '
+ IntToStr(Hour);
end;
# DecodeDate, DecodeTime Example
--------------------------------------------------------
DecodeTime 将TDateTime型态的时间变数,转为Word型态
--------------------------------------------------------
Unit SysUtils
函数原型 procedure DecodeDate(Date: TDateTime; var Year, Month,Day: Word);
函数原型 procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec,MSec: Word);
范例 procedure TForm1Button1Click(Sender: TObject);
var
Present: TDateTime;
Year, Month, Day, Hour, Min, Sec, MSec: Word;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
Label1Caption := 'Today is Day ' + IntToStr(Day) + ' of
Month ' + IntToStr(Month) + ' of Year ' + IntToStr(Year);
DecodeTime(Present, Hour, Min, Sec, MSec);
Label2Caption := 'The time is Minute ' +IntToStr(Min) + ' of
Hour ' + IntToStr(Hour);
end;
--------------------------------------------------------
EncodeDate 将Word型态的日期变数,转为TDateTime型态
--------------------------------------------------------
范例
procedure TForm1Button1Click(Sender: TObject);
var
MyDate: TDateTime;
begin
MyDate := EncodeDate(StrToInt(Edit1Text), StrToInt(Edit2Text), StrToInt(Edit3Text));
Label1Caption := DateToStr(MyDate);
end;
-------------------------------------------------------
EncodeTime 将Word型态的时间变数,转为TDateTime型态
--------------------------------------------------------
Unit SysUtils
函数原型 function EncodeDate(Year, Month, Day: Word): TDateTime;
函数原型 function EncodeTime(Hour, Min, Sec, MSec: Word):
TDateTime;
范例 procedure TForm1Button1Click(Sender: TObject);
var
MyDate: TDateTime;
MyTime: TDateTime;
begin
MyDate := EncodeDate(83, 12, 31);
Label1Caption := DateToStr(MyDate);
MyTime := EncodeTime(0, 45, 45, 7);
Label2Caption := TimeToStr(MyTime);
end;
范例
procedure TForm1Button1Click(Sender: TObject);
var
MyTime: TDateTime;
begin
MyTime := EncodeTime(0, 45, 45, 7);
Label1Caption := TimeToStr(MyTime);
end;
--------------------------------------------------------
FormatDateTime 将日期时间依Format的格式转换给一字串
--------------------------------------------------------
Unit SysUtils
函数原型 function FormatDateTime(const Format: string; DateTime:
TDateTime): string;
类似DateTimeToString
Format格式
c 内定值ShortDateFormat的格式(1996/12/20 09:20:15 PM)
d 日期,前面不补0(1-31)
dd 日期,前面补0(01-31)
ddd 星期(星期日)
Dddd 中文201版,同上
ddddd 日期(1996/12/20)
dddddd 日期(1996年12月20日)
m 月份,前面不补0(1-12)
mm 月份,前面补0(01-12)
mmm 中文显示(十二月)
mmmm 中文201版,同上
Yy 年度(00-99)
yyyy 年度(0000-9999)
h 小时(0-23)
hh 小时(00-23)
n 分钟(0-59)
nn 分钟(00-59)
s 秒钟(0-59)
ss 秒钟(00-59)
t 时间(09:20 PM)
tt 时间(09:20:15 PM)
am/pm 单独显示am or pm(若大写,则显示大写)
a/p 单独显示a or p
范例
The following example assigns 'The meeting is on Wednesday, February 15, 1995 at 10:30 AM' to the string variable S
S := FormatDateTime('"The meeting is on " dddd, mmmm d, yyyy, " at " hh:mm AM/PM',
StrToDateTime('2/15/95 10:30am'));//
--------------------------------------------------------
Now 传回目前的日期时间
--------------------------------------------------------
Unit SysUtils
函数原型 function Now: TDateTime;
范例
procedure TForm1Button1Click(Sender: TObject);
begin
Label1Caption := DateTimeToStr(Now);
end;
# Now, DateTimeToStr Example
--------------------------------------------------------
StrToDate 将字串转为TDateTime型态的日期
--------------------------------------------------------
Unit SysUtils
函数原型 function StrToDate(const S: string): TDateTime;
范例 procedure TForm1Button1Click(Sender: TObject);
var
ADate: TDateTime;
begin
ADate := StrToDate(Edit1Text);
Label1Caption := DateToStr(ADate);
end;
范例
procedure TForm1Button1Click(Sender: TObject);
var
ADate: TDateTime;
days: array[17] of string;
begin
days[1] := 'Sunday';
days[2] := 'Monday';
days[3] := 'Tuesday';
days[4] := 'Wednesday';
days[5] := 'Thursday';
days[6] := 'Friday';
days[7] := 'Saturday';
ADate := StrToDate(Edit1Text);
ShowMessage(Edit1Text + ' is a ' + days[DayOfWeek(ADate)];
end;
# StrToDate, DayOfWeek Example
--------------------------------------------------------
StrToDateTime 将字串转为TDateTime型态的日期时间
--------------------------------------------------------
Unit SysUtils
函数原型 function StrToDateTime(const S: string): TDateTime;
范例
procedure TForm1Button1Click(Sender: TObject);
var
ADateAndTime: TDateTime;
begin
ADateAndTime := StrToDateTime(Edit1Text);
Table1FieldByName('TimeStamp')AsDateTime := ADateAndTime;
end;
--------------------------------------------------------
StrToTime 将字串转为TDateTime型态的时间
--------------------------------------------------------
Unit SysUtils
函数原型 function StrToTime(const S: string): TDateTime;
范例
procedure TForm1Button1Click(Sender: TObject);
var
ATime: TDateTime;
begin
ATime := StrToTime(Edit1Text);
if ATime < 050 then
ShowMessage('Good Morning')
else
ShowMessage('Good Afternoon');
end;
--------------------------------------------------------
Time 传回目前的时间
--------------------------------------------------------
Unit SysUtils
函数原型 function Time: TDateTime;
范例
procedure TForm1Timer1Timer(Sender: TObject);
var
DateTime : TDateTime;
str : string;
begin
DateTime := Time; // store the current date and time
str := TimeToStr(DateTime); // convert the time into a string
Caption := str; // display the time on the form's caption
{ Note This could have been done with the following line of code:
Caption := TimeToStr(Time); }
end;
# Time, TimeToStr Example
--------------------------------------------------------
TimeToStr 时间转换成内定型字串(09:20:15 PM)
--------------------------------------------------------
Unit SysUtils
函数原型 function TimeToStr(Time: TDateTime): string;
GetMem procedure 配置记忆体程序
New 配置指位器P的记忆体空间,
大小为P所指型态的大小
--------------------------------------------------------
Dispose 释放New所配置的记忆体
--------------------------------------------------------
Unit System
函数原型 procedure New(var P: Pointer);
函数原型 procedure Dispose(var P: Pointer);
范例 type
PListEntry = ^TListEntry;
TListEntry = record
Next: PListEntry;
Text: string;
Count: Integer;
end;
var
List, P: PListEntry;
begin
New(P);
P^Next := List;
P^Text := 'Hello world';
P^Count := 1;
List := P;
Dispose(P);
…
end;
范例
type
Str18 = string[18];
var
P: ^Str18;
begin
New(P);
P^ := 'Now you see it';
Dispose(P); { Now you don't }
end;
--------------------------------------------------------
GetMem 配置指位器P的记忆体空间,大小可自行设定
--------------------------------------------------------
范例
var
F: file;
Size: Integer;
Buffer: PChar;
begin
AssignFile(F, 'testtxt');
Reset(F, 1);
try
Size := FileSize(F);
GetMem(Buffer, Size);
try
BlockRead(F, Buffer^, Size);
ProcessFile(Buffer, Size);
finally
FreeMem(Buffer);
end;
finally
CloseFile(F);
end;
end;
系统相关的常用时间函数几乎都在这了你问的问题每个准只能这么答了
以上就是关于delphi怎么计算程序运行时间全部的内容,包括:delphi怎么计算程序运行时间、delphi获取http://open.baidu.com/static/time/beijingtime.html 北京时间 - 国家授时中心标准时间!在程、delphi idftp 获取修改时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)