• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Delphi > Delphi中对时间操作方法汇总

Delphi中对时间操作方法汇总

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了delphi 注册表操作,delphi 文件操作,delphi 文件夹操作,delphi 操作excel,delphi 位操作等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一般来说在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; 
</div>

和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; 
</div>

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

用于时间操作的函数

Date函数:
定义:Date: TDateTime;
作用:返回当前的日期
范例:

CurrentDate := Date; 
</div>

DayOfWeek函数:
定义:function DayOfWeek(Date: TDateTime): Integer;
作用:得到指定日期的星期值,返回1~7,代表周日到周六。

IncMouth函数:
定义:function IncMonth(const Date: TDateTime; NumberOfMonths: Integer): TDateTime;
作用:求给定的日期Data在NumberOfMonths个月后的日期。
范例:

Date1 := IncMonth(date,10); 
</div>

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

IsLeapYear函数:
定义:function IsLeapYear(Year: Word): Boolean;
作用:判断指定的年份是否是闰年;
范例:

if isLeapYear(2000) then ShowMessage(‘该年是闰年'); 
</div>

Now函数:
定义:function Now: TDateTime;
作用:用于取得当前的日期时间
范例:

CurrentDateTime := Now; 
</div>

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; 
</div>

各种时间类型之间的转换函数

DateTimeToFileDate函数:
定义:DateTimeToFileDate(DateTime: TDateTime): Integer;
作用:将一个TDateTime类型的时间转化为Dos环境中的时间,Dos环境下对时间的访问方法和VCL中的TdateTime类型不一样,在进行文件操作时,为了保持时间的一致性,需要使用DateTimeToFileDate函数进行转化, 返回的Integer的值就是Dos下的用于描述时间的值。

DateTimeToSystemTime 过程:
定义:procedure DateTimeToSystemTime(DateTime: TDateTime; var SystemTime: TSystemTime);
作用:将一个TDateTime类型的时间转换为Win API函数所使用的TSystemTime类型,在使用WinApi函数操纵时间时用到。

SystemTimeToDateTime 函数:
定义:function SystemTimeToDateTime(const SystemTime: TSystemTime): TDateTime;
作用:将一个在WinApi函数中得到的TSysTemTime类型的数转换为TDateTime类型。

DateTimeToTimeStamp 函数:
TimeStampToDateTime 函数:
定义:DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp;
function TimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime;
作用:用于在TDataTime类型与TTimeStamp之间进行互相转换。TDataTime 用一个double描绘一个时间,而TTimeStamp则是采用两个整形数分别描述时间。两种类型的区别可参考文章开始处的数据类型描述部分。

EncodeDate 函数:
定义:function EncodeDate(Year, Month, Day: Word): TDateTime;
作用: 输入年(year),月(month),日(day)的值,将该日期返回为TDateTime类型,年的范围为1-9999,月份的范围为1-12,日期的范围视当月的情况而定,如果输入的值超出范围,则将产生一个EConvertError错误。

DecodeDate 过程:
定义:procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word);
作用:输入一个TDateTime类型的日期,将其转为年(Year),月(Month),日(Day)的值。如果输入值为0或小于0,则年月日均为0,

EncodeTime 函数:
定义:EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;
作用:输入小时(Hour),分(min),秒(Sec),微秒(MSec)的值,返回一个TDateTime类型的时间,该值为一个介于0至1之间的小数。Hour的取值范围为0-23,Min的取值范围为0-59,Sec的取值范围为0-59,MSec的取值范围为0-999,如果输入值超出范围,则产生一个EConvertError 错误。

DecodeTime 过程:
定义:procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);
作用:输入一个时间,将其转换为小时(Hour),分(min),秒(Sec),微秒(MSec)的值。

TDateTime类型与字符串型转换函数:

DateTimeToStr 函数:
DateToStr 函数
TimeToStr函数
定义:function DateTimeToStr(DateTime: TDateTime): string;
function TimeToStr(Time: TDateTime): string;
function TimeToStr(Time: TDateTime): string;
作用:将一个TDateTime类型的数转换成字符串,DateTimeToStr转换日期和时间,DateToStr只转换日期,TimeToStr只转换时间。转换后的输出效果为YYYY-M-D H:M:S

StrToDateTime函数
StrToDate函数
StrToTime函数
定义:function StrToDateTime(const S: string): TDateTime;
function StrToDate(const S: string): TDateTime;
function StrToTime(const S: string): TDateTime;
作用:将带有日期时间格式的字符串转化成TDateTime,其中S必须是一个有效的字符串,如
YY-MM-DD HH:MM:SS格式,否则就会触发EConvertError事件,提示错误信息。
时间部分的字符串必须是由2~3个的数值字串构成,并且采用在Windows区域设置中设置的分隔字符进行分隔,其格式要求符合在Windows区域设定中的设定,其中HH,MM(小时,分钟)必须添加,SS(秒)可选,也可以在后面加入 Am和Pm区分上下午,这时候系统将认为采用12小时表示法,否则认为采用24小时表示法。
日期部分的格式要求符合Windows区域设置中的短日期格式,也是由2~3个的数值字串构成,如果在字符串中只有2个数,则认为是指定了月份和日期,年份采用当前年份,
如果在区域设置中采用两位年份的表示方法,则系统将

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Delphi中对时间操作方法汇总

相关文章

  • 2017-05-28Delphi下OpenGL2d绘图之初始化流程详解
  • 2017-05-28delphi 正弦曲线图
  • 2017-05-28Delphi实现图像文本旋转特效完整实例代码
  • 2017-05-28Delphi使用OpenGL2d绘图之画图片Bmp的方法
  • 2017-05-28delphi mysql adbquery数据提供程序或其他服务返回 E_FAIL 状态
  • 2017-05-28Delphi隐藏TPageControl的标签实例介绍
  • 2017-05-28Delphi实现木马自我拷贝方法
  • 2017-05-28Delphi实现窗口文字淡入淡出渐变效果的方法
  • 2017-05-28截取指定符号之间的字符串(随机读取)delphi实例代码
  • 2017-05-28插件管理框架 for Delphi(一)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Delphi CLSIDFromProgID
    • Delphi7中Listview的常用功能汇总
    • Delphi 生成excel中饼图的实例代码
    • Delphi下OpenGL2d绘图之画线的方法
    • Delphi实现木马自我拷贝方法
    • ListView 百分比进度条(delphi版)
    • 插件管理框架 for Delphi(一)
    • Delphi控件ListView的属性及使用方法详解
    • Delphi实现限定软件使用时间的方法
    • delphi字符串分隔函数用法实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有