Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > 汇编语言 > delphi 中处理时间的函数
【标  题】:delphi 中处理时间的函数
【关键字】:delphi
【来  源】:http://www.cnitblog.com/flyinggoal/archive/2006/10/24/18343.html

delphi 中处理时间的函数

Your Ad Here IT博客网 - 在浩淼的天空下,留下生活的足迹 - delphi 中处理时间的函数
posts - 14,comments - 6,trackbacks - 0

Delphi中的用于表示时间的类型:

首先,看一看在delphi中用于描述时间的几种数据结构,对时间的操作,其实就是对这些结构的操作。

TDateTime类型

Delphi中最常用的表示日期时间的数据类型TDateTime类型,和普通的整形数一样,你可以给日期定义一个日期型变量以便在程序中进行操作。TdateTime类型实质上是一个Double型的数,在Delphi中是这样定义TdateTime类型: type? TDateTime = type Double ,具体的算法是用Double数的整数部分表示日期,以1989年12月30日为基准点,以天为单位进行加减,如数字1表示1900年1月1日,数字-1表示1989年12月29日。而小数部分则用来表示时间,其值为欲表示的时间与一整天总时间的比值,如早上6点就是6/24=0.25,而早上6:15就是(6*60+15)/(24*60)=0.2604166666666666666666666666667,下面,给出几个例子说明TDateTime类型与Double类型的交互关系

0?????? 12/30/1899 00:00:00

2.75?? 1/1/1900 18:00:00

-1.25?? 12/29/1899 6:00:00

35065?? 1/1/1996 00:00:00

相信大家一定能自己理解TdateTime与Double之间的转换方法,因此,从根本上对TDateTime的操作与Double完全一样。

?

TTimeStamp 类型:

这是一个用来描述日期与时间的一个结构类型,在Delphi中是这样定义的:

type

? TTimeStamp = record

??? Time: Integer;????? {从午夜0点开始到指定时间的毫秒数 }

??? Date: Integer;????? {以本日为基准到指点日期的天数 }

? end;

TDateTime相比,可更直观表示高精度的时间,一般用于毫秒级的运算以及用于表示较长的时间。

?

PsystemTime 类型:

一个用于WinApi中对时间操作的指针型结构。他的定义为:

type

PSystemTime = ^TSystemTime;

TSystemTime = record

? wYear: Word;

? wMonth: Word;

? wDayOfWeek: Word;

? wDay: Word;

? wHour: Word;

? wMinute: Word;

? wSecond: Word;

? wMilliseconds: Word;

end;

这个结构多用于调用WinApi操作时使用。

在了解了各种时间类型的本质后,相信大家都有一套操作这些类型的时间的想法,不过在Delphi中还提供了一整套用于操作时间的过程函数,这些过程和函数都定义在SysUnit这个单元中,现在就向大家介绍Delphi中相关函数:

?

用于时间操作的函数

Date函数:

定义:Date: TDateTime;

作用:返回当前的日期

范例:CurrentDate := Date;

?

DayOfWeek函数:

定义:function DayOfWeek(Date: TDateTime): Integer;

作用:得到指定日期的星期值,返回1~7,代表周日到周六。

?

IncMouth函数:

定义:function IncMonth(const Date: TDateTime; NumberOfMonths: Integer): TDateTime;

作用:求给定的日期Data在NumberOfMonths个月后的日期。

范例:Date1 := IncMonth(date,10);

如果今天是2002-5-3,则Date1就是2003-3-3

?

IsLeapYear函数:

定义:function IsLeapYear(Year: Word): Boolean;

作用:判断指定的年份是否是闰年;

范例:if isLeapYear(2000) then ShowMessage(‘该年是闰年’);

?

Now函数:

定义:function Now: TDateTime;

作用:用于取得当前的日期时间

范例:CurrentDateTime := Now;

?

ReplaceDate 过程

定义:procedure ReplaceDate(var DateTime: TDateTime; const NewDate: TDateTime);

作用:使用参数Newdate日期部分替换参数DateTime的日期部分,但不改变时间部分。

?

ReplaceDate 过程

定义:procedure ReplaceTime(var DateTime: TDateTime; const NewTime: TDateTime);

作用:使用参数Newdate时间部分替换参数DateTime的时间部分,但不改变日期部分。

如果上述这两个过程一起用,就相当于赋值了。

?

Time函数:

定义:function Time: TDateTime;

作用:返回当前的时间

范例:CurrentTime := Time;

posted on 2006-10-24 15:03 风筝 阅读(5) 评论(0)  编辑 收藏 收藏至365Key
【相关评论】
没有相关评论
【发表评论】
姓名:
邮件:
随机码*
评论*
      
|  首 页  |  版权声明  |  联系我们   |  网站地图  |
CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.