`
ivfh
  • 浏览: 58629 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Delphi中的时间操作技术

阅读更多
在编写应用程序时,我们需要经常与时间和日期打交道,因此经常需要一些对时间的控制技术,在Delphi中,提供了一整套对日期和时间的操作函数,在此,我将详细介绍一下在Delphi中的时间操作技术,希望能对大家有所帮助。
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操作时使用。
本贴来自ZDNetChina中文社区
http://bbs.zdnet.com.cn ,本贴地址:http://bbs.zdnet.com.cn/viewthread.php?tid=142576
分享到:
评论

相关推荐

    delphi中的时间操作技术

    delphi中的时间操作技术 在编写应用程序时,我们需要经常与时间和日期打交道,因此经常需要一些对时间的控制技术,在Delphi中,提供了一整套对日期和时间的操 作函数,在此,我将详细介绍一下在Delphi中的时间操作...

    Delphi编程技巧.rar

    在DELPHI2.0/3.0中直接操作端口 开 发AS/400 应 用 系 统: PB5 与Delphi3 的 比 较 检查驱动器是否就绪 在Delphi应用程序中拖动控件 用修改文件时间的方法来加密文件 资 源 文 件 在DELPHI 中 的 使 用 ...

    DELPHI专题文档-程序应用

    在Delphi程序中操作注册表 鼠标和键盘控制 如何为Delphi程序添加事件和事件处理器 在Delphi应用程序中拖动控件 用DEPHI为应用软件建立注册机制 用Delphi创建临时文件 Delphi 5快速创建控制面板程序 Delphi...

    DELPHI专题--程序应用

    在Delphi程序中操作注册表 鼠标和键盘控制 如何为Delphi程序添加事件和事件处理器 在Delphi应用程序中拖动控件 用DEPHI为应用软件建立注册机制 用Delphi创建临时文件 Delphi 5快速创建控制面板程序 Delphi...

    Introducing Delphi ORM.pdf

    在一系列的任务中,您将接触到一些技术和最佳实践,这些技术和实践使Aurelius的使用变得简单有效。此外,您还将改进分析技能,以提高对Delphi(Pascal)的理解,从而帮助您编写更好的代码。Delphi ORM的介绍解释说,...

    Delphi界面美化

     大家可能见过诸如金山毒霸,瑞星杀毒,以及五笔输入法等等在系统托盘(即右下角有时间和输入法图标的地方)在的控制菜单,而在正常的任务栏(即屏幕最下方的“开始”按钮的右边的各式各样)中却不出现按钮的程序,即我们常...

    零点起航Delphi7基础教程源码

    本书内容翔实、图文并茂,强调“边学边做”,具有良好的操作性,适合Delphi初级开发人员使用,也可以作为广大计算机爱好者的参考资料。 第1章 Delphi基础知识 1.1 Delphi的特点 1.2 Delphi7的集成开发环境 ...

    Delphi5开发人员指南

    11.1.2 在Delphi程序中使用多线程 304 11.1.3 关于线程的滥用 305 11.2 TThread对象 305 11.2.1 TThread基础 305 11.2.2 TThread实例 307 11.2.3 线程的终止 307 11.2.4 与VCL同步 308 11.2.5 一个演示程序 310 ...

    Delphi开发范例宝典目录

    实例191 在DELPHI中控制Word 246 实例192 带日志的程序 247 实例193 获取窗口文本 248 实例194 判断文件是否正在被使用 250 实例195 提取文件中的图标资源 251 实例196 在程序中调用.HLP文件 253 实例...

    delphi毕业论文

    实现查询和打印各种已生成的单据(入库单,领物单,换物单,退物单,报损单,回收单),“时间”为一个时间段,默认为当前系统时间,可以输入科室、操作人和录入人等查询条件,也可以不输入这些查询条件;...

    Delphi XE2的OpenCL控件(可以象TQuery一样使用OpenCL)

    Convolution则是一个简单的计算过程,用来测试启动Kernel、等候数据等操作会占用的时间情况的。 OpenCL其实并不是想象中那么美妙,也不是想象中的那么复杂,但要使用好OpenCL,就必须认真的对待每个细节, 甚至...

    Raize Components 6.1.10 For Delphi D7-XE7 安装版.part3.rar

    (直接安装使用,无需其他任何操作) Raize组件, Delphi和C + + Builder的是一个用户界面的设计系统。在它的中心是一个集合超过125个通用的原生VCL控件。内置技术的基础上,第一次创建超过15年前,这些高品质的组件为...

    delphi EhLib 9.5.012 Full Source 专业版 .rar

    组件实现了在设置中存储组件属性的技术 存储,如ini文件,注册表等。 TMemTableEh组件 数据集,将数据保存在内存中。它可能考虑为 记录。 此外,它: 支持一个特殊的接口,该接口允许DBGridEh组件查看所有 ...

    用Delphi实现Word文件的预览

    我们对使用 BufferedImage 对象的兴趣意味着我们将不再花费精力去研究减少处理器时间的最佳技术,而是把注意力放在理解怎样才能在一个程序内部创建和使用图像上。 我们的 BufferedImage 对象看上去如图 1 中的...

    蓉蓉图书馆管理系统(delphi)

    随着科学技术的飞速发展,人们对知识的可望出越来越多;想在有限的时间内多学习一些有用的知识。图书馆和书店是他们常出入的地方,为了使商家更好的管理他们的书店或者是书馆;我在业余时间开发了这个图书管理系统...

    delphi 开发经验技巧宝典源码

    0007 在Delphi中加载QReport报表组件 7 1.3 创建DLL文件 8 0008 生成一个DLL文件 8 0009 调用DLL文件 8 1.4 窗体相关操作 9 0010 将组件置前/置后 9 0011 如何锁定窗体中的组件 9 0012 如何改变窗体...

    delphi 开发经验技巧宝典源码06

    0007 在Delphi中加载QReport报表组件 7 1.3 创建DLL文件 8 0008 生成一个DLL文件 8 0009 调用DLL文件 8 1.4 窗体相关操作 9 0010 将组件置前/置后 9 0011 如何锁定窗体中的组件 9 0012 如何改变窗体...

    delphi 删除 指定目录 指定日期 之前所有文件

    如果不是,则直接进行比较日期之后,进行删除操作。 其中提取到 这个文件的准确创建日期这一块可能 费了点时间。就是不想直接用r.finddata 里头的东西。太烦人。 也没有多少技术,就是方便删除超大目录下相关...

Global site tag (gtag.js) - Google Analytics