![]() |
1
21
好吧,我的反应有点晚了,但这里有一个新的德尔菲的解决方案。 它使用隐式类重载,以便可以像使用TDateTime变量一样使用此类型的记录。
实施:
现在您可以这样声明您的日期:
要查看是否有效,请执行以下操作:
如果您真的想用这个替换所有的tdatetime变量,您可能还需要重载其他一些操作符(加、减、显式…)。 |
![]() |
2
12
唯一的?可能的方法,但可能不是你要找的:
|
![]() |
3
10
我倾向于模仿 康斯特 带有函数的日期。从技术上讲,他们有点多 常数 比“伪常量”可赋值类型 康斯特 s。
注释
使用
例如,你知道有一个奇怪的群体,他们认为把约会的部分按照不一致的顺序“洗牌”是有意义的吗?它们使用中间部分,然后是最少部分,然后是最重要的部分(例如“3/23/2009”)。 <厚颜无耻的咧嘴笑; .只有当你102岁的时候,逻辑才有意义——然后你可以声称你的年龄是021岁。
|
![]() |
4
8
无法做到这一点,因为解释一个日期本身并不具有确定性,它取决于您所遵循的约定/区域设置。
|
![]() |
5
6
不,德尔福不支持。
您的第一个想法是请求不同于普通浮点文本的日期时间文本。我找到了
QC 72000
,这是关于显示
你的第二个想法需要
|
![]() |
6
4
RobKennedy的答案表明strtodate解决方案本质上是不可能的,因为如果代码是在欧洲编译的,您不希望代码被破坏! 我同意应该有一些方法来做编码日期,但没有。 就我而言,编译器应该简单地编译并运行它在常量赋值中找到的任何代码,并将结果存储到常量中。我将把它留给程序员来确保代码对它的环境不敏感。 |
![]() |
7
4
一种解决方案是创建一个多年不变的列表,另一种方法是创建一个月偏移量的列表,然后动态地构建它。您必须自己处理闰年,在每个结果常量中添加1。就在下面几句,让你开始…:)
如果你有闰年,那么你必须在那年2月以后的任何地方加1。
编辑 为了清晰起见,增加了几年,并增加了闰日常数。 |
![]() |
8
3
Delphi日期是 days since Dec 30, 1899 . 所以你可能会想出一个复杂的数学公式,把日期表示为常量。然后您可以非常奇怪地格式化它,以强调人类可读的部分。我最好的尝试是在下面,但它是非常不完整的;首先,它假设所有的月都有30天。 不过,我的例子主要是为了好玩。实际上,这很荒谬。
|
![]() |
9
1
我想 这个 您可以使用的最佳解决方案是声明:
接受它。 我的尝试1
我的尝试2
因此,即使它们是恒定的和确定性的(即不依赖于任何区域设置信息),它仍然不起作用。 |
![]() |
10
0
类型“tdatetime”=类型“double”。 算法:
2。 康斯特 dtziro:tdatetime=2.04237268518519; |
![]() |
Noah Wilder · Swift中元组的操作符重载 7 年前 |
![]() |
Salman · 指向具有数组索引运算符重载的类的指针 7 年前 |
![]() |
Nom OnTheCookie · 使用向量重载C++输出 7 年前 |
![]() |
J. Doe · C++重载:从友元函数切换到成员函数 7 年前 |
![]() |
Ana · 使用操作符重载添加存储在vector中的类对象 7 年前 |
![]() |
Matthew · 重载运算符|用于固定大小的阵列? 7 年前 |
![]() |
Martin Žid · 重载运算符+=具有两个类 7 年前 |