一、DateTime,Date,Time存储方式本质上也是以double来存储的。用整数部分表示日期,小数部分表示时间。可看我另外一篇“access 中“日期/时间”存储方式 ”

TDateTimePicker有上面三种属性。

二、TDateTimePicker的kind属性设置为dtkDate用于显示日期,第二个kind设置为dtkTime用于显示时间,但是不能同时显示的。

三、用DateTimePicker.Date和Time的值要注意:取Date要用trunc取整得到,取Time要用frac取小数得到。

四、DateTimePicker的Date,Time,DateTime三者是相等的。

下面这个例子看一下:

新建一个工程放入一个TDateTimePicker、两个TEdit、两个按钮,并设置两个按钮的事件代码如下

{DateTimePicker1的日期和时间设置为:2010-03-26 13:00:00}
procedure TForm1.Button1Click(Sender: TObject);  //取出Date部分,并判断它的值
var
  t:TDateTime;

begin
  t:= DateTimePicker1.Date;

Edit1.Text:=DateTimeToStr(t);
end;

procedure TForm1.Button2Click(Sender: TObject);    //判断取Date和DateTime是否相等

begin

if DateTimePicker1.Time = DateTimePicker1.DateTime then
      begin
        Edit2.Text:='相等'
      end
    else
      begin
        Edit2.Text:='不相等';
      end;

end;

可以看到虽然我们的代码中只取了Date或是Time,但是它们的值和DateTime的值是相等的。

所以如果你用如下代码

{DateTimePicker1的日期和时间设置为:2010-03-26 13:00:00}
procedure TForm1.Button1Click(Sender: TObject);  //取出Date部分,并判断它的值
var
  t:TDateTime;

begin
  t:= DateTimePicker1.Date + DateTimePicker1.Time;

//t:= trunc(DateTimePicker1.Date)+frac(DateTimePicker1.Time);//这才是等到DateTimePicker1的日期和时间

Edit1.Text:=DateTimeToStr(t);
end;

结果是:2120-6-21 2:00:00

相当于是把DateTimePicker1的时间和日期乘以2了,并不是说DateTimerPicker的Date+Time就和DateTime相等。

而用 trunc取整数部分 加上 frac取小数部分 函数,两者取出来的和就会和原来相等。

参考:

http://ifso.iteye.com/blog/1752420

TDateTimePicker中Date与Time的误导的更多相关文章

  1. javascript中Date对象的应用——简易日历的实现

    × 目录 [1]效果 [2]HTML [3]CSS[4]JS 前面的话 简易日历作为javascript中Date对象的常见应用,用途较广泛.本文将详细说明简易日历的实现思路 效果演示 HTML说明 ...

  2. Java中Date各种相关用法

    Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=Calendar.getInstance(); time.clear(); time.set ...

  3. Linux中date命令的各种实用方法--转载

    在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,自己也曾经为时间的各种表示方法和如何修改时间而困惑,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的 ...

  4. javascript 的Date 格式化, 模仿shell中date命令的格式

    原文:javascript 的Date 格式化, 模仿shell中date命令的格式 shell 中显示当前的日期 [root@localhost]$ date '+%Y-%m-%d %H:%M:%S ...

  5. Java中Date和Calender类的使用方法

    查看文章     Java中Date和Calender类的使用方法 2009-10-04 20:49 Date和Calendar是Java类库里提供对时间进行处理的类,由于日期在商业逻辑的应用中占据着 ...

  6. php 中date显示时间不对与Linux文件乱码问题

    php 中date显示时间不对解决办法如下1.修改/etc/php.ini文件 在里头中找到data.timezone =去掉它前面的分号';' 然后设置data.timezone = “Asia/S ...

  7. javascript中Date对象的应用

    前面的话 简易日历作为javascript中Date对象的常见应用,用途较广泛.本文将详细说明简易日历的实现思路 效果演示 HTML说明 使用type=number的两个input分别作为年和月的输入 ...

  8. PAT——不吉利的日期(java中date和Calendar使用)

    题目描述 在国外,每月的 13 号和每周的星期 5 都是不吉利的.特别是当 13 号那天恰好是星期 5时,更不吉利. 现在给你一个年份,请你从小到大依次输出当年所有13 号是星期 5 的月份. 输入描 ...

  9. SpringMVC返回Json,自定义Json中Date类型格式

    http://www.cnblogs.com/jsczljh/p/3654636.html —————————————————————————————————————————————————————— ...

随机推荐

  1. Activiti任务认领

    Activiti任务认领 TaskService taskService; taskService.setAssignee(String taskId, String userId);taskServ ...

  2. Mercurial和Git的主要区别(zz)

    Mercurial和Git的主要区别 17 August 2008 1.Mercurial用Python开发,Git用C开发,相对来说,Git比较快,但是Mercurial的性能也不差 2.Mercu ...

  3. 【Web】移动端下拉刷新、上拉加载更多插件

    移动网站中常常有的功能:列表的下拉刷新.上拉加载更多 本例介绍一种简单使用的移动端下拉刷新.上拉加载更多插件,下载及参考地址:https://github.com/ximan/dropload 插件依 ...

  4. [html]Sublime Text添加插件

    今天想在Sublime Text(简称ST)内编写HTML后直接使用浏览器看效果,想添加View in Browser插件,然后遇到奇怪的问题添加插件直接报"找不到有用的插件" 一 ...

  5. 852. Peak Index in a Mountain Array

    class Solution { public: int peakIndexInMountainArray(vector<int>& A) { return max_element ...

  6. Le Chapitre IV

    J'avais ainsi appris une seconde chose très importante: C'est que sa planète d'origine était à peine ...

  7. IntellJ IDEA2017 springboot2.0.2中读取配置

    IDEA 路径 src\main\resources\application.properties 配置文件名称为 application.properties 默认的位置在classpath根目录下 ...

  8. OOP中的六种关系以及和JDK或框架中源码进行匹配对应

    前言:这六种关系里:泛化=实现>组合>聚合>关联>依赖:其中组合-聚合-关联这三个如果只是给出一段代码是无法判断具体是什么关系的,需要配合语义或说业务场景来能进行区分(和设计模 ...

  9. 学python之路前的一些话

    为什么学python: 这些年一直从事运维相关的工作.但做下来感觉都是些很基础的东西,无非就是对一些命令或者问题处理很熟练而已,混的都是经验.曾很羡慕会写shell脚本,会自动化安装程序的运维组组长, ...

  10. ASP.NET批量下载文件的方法

    一.实现步骤 在用户操作界面,由用户选择需要下载的文件,系统根据所选文件,在服务器上创建用于存储所选文件的临时文件夹,将所选文件拷贝至临时文件夹.然后调用 RAR程序,对临时文件夹进行压缩,然后输出到 ...