TDateTime 的相关用法

    年纪大了真的记忆力越来越差,这段时间现在开始摸 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)
posted @   海利鸟  阅读(1520)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示