【发布时间】:2010-10-15 02:29:03
【问题描述】:
据我所知,没有办法做到这一点,但我会问一下,以防万一其他人知道如何做到这一点。如何在 Delphi 中将日期声明为 const?
我找到的唯一解决方案是使用数字等价物,因为它不是人类可读的,所以维护起来有点痛苦。
const
Expire : TDateTime = 39895; // Is actually 3/23/2009
我想做的是这样的:
const
Expire : TDateTime = TDateTime ('3/23/2009');
或
const
Expire : TDateTime = StrToDate('3/23/2009');
如果这是一个功能请求,或者我只是错过了如何执行此操作,请告诉我(是的,我知道这似乎是一件奇怪的事情......)
【问题讨论】:
-
很好的问题 - 我经常想这样做(更多的是时间而不是日期,但原理大致相同 - 例如,我想将 6:45pm 放入 TDateTime 作为常量,等等)。我总是会用 cmets 做类似你的第一个例子的事情——当我以后需要改变它时,这很痛苦!
-
这看起来像 GExperts 或 DLangExtensions 应该能够做的事情,或者作为专家输入日期和/或时间以创建正确注释的常量,或者作为将字符串转换为 TDateTime 的预处理器。只允许 ISO 8601 格式应该消除所有歧义。
-
@Mghie - 好点。我完全可以接受 GExperts 解决方案。当我不得不拿出计算器开始做除法时,我感到很沮丧。 :-)
标签: delphi date operator-overloading constants tdatetime