TDateTime 的相关用法

时间:2023-01-30 07:58:42

    年纪大了真的记忆力越来越差,这段时间现在开始摸 XE2了,昨天在项目组中看到编译顺序,今天再想看看在那里就是找不到了!看来想到的东西还是要记录下来!

  TDateTime 是 Delphi里常用的类,负责时间的存储,他与C#里面的是有区别的(用了一段时间的C#,回国头来,Delphi有点不习惯了,呵呵),基础类型是Double,其取值范围是 从 12/30/1899开始,比如6:00 AM 12/29/1899就是 -1.25  整数部分就是天,小数部分表示一天的几分之。

1秒钟就是 1/(60*60*24)

1分钟就是 1/(60*24)

1小时就是 1/24

    真如大家所想到的,一分钟,一小时,一秒 已经是delphi提供的Const了。

常用的函数包括:
now(),date(),time()
year(),
DateTimetoStr(),FormatDateTime()
replaceDate(),replaceTime()
isLeapYear(),
EncodeDateTime(),EncodeTime(),EncodeDate()
strToDateTime()
其实知道TDateTime本质,问题就很好解决了,用以上函数仅仅为了方便。
比如:
求出前一天
    1. now()-1;
    2. IncDay(now(),-1);
    3. YesterDay(now());
如果是两个时间的组合比如用两个DateTimePick,一个的类型是时间,一个类型是日期。那么如何合成一个有效的时间呢?
    1. replaceDate(DateTimePick1.dateTime,DateTimePick2.dateTime));
    2. EncodeDateTime();
    3. Int(DateTimePick1.dateTime)+(DateTimePick2.dateTime-trunc(DateTimePick2.dateTime));
    4. Int(DateTimePick1.dateTime)+Frac(DateTimePick2.dateTime);

求出前30分钟

    1. now()-30*(1/60/24)
    2. IncMinute(now(),-30)