Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 将字符串转换为日期,并以天为单位获取差异_Delphi - Fatal编程技术网

Delphi 将字符串转换为日期,并以天为单位获取差异

Delphi 将字符串转换为日期,并以天为单位获取差异,delphi,Delphi,我有以下格式的字符串,例如20110201,我想将其转换为delphi中的日期,然后从今天减去它以获得天数差 我该怎么做? 对不起,我的英语不好。您需要的函数是Copy(检索部分输入字符串)、strotint(将字符串部分转换为整数)、DateUtils.EncodeDate(从整数创建TDate)现在(检索当前日期为TDate)和DateUtils.DaysBetween(以天为单位获取两个日期之间的差值) 我认为您可以使用Delphi帮助自己计算出这些函数的其余部分。使用Copy提取年、月、

我有以下格式的字符串,例如
20110201
,我想将其转换为delphi中的日期,然后从今天减去它以获得天数差

我该怎么做?
对不起,我的英语不好。

您需要的函数是
Copy
(检索部分输入字符串)、
strotint
(将字符串部分转换为整数)、
DateUtils.EncodeDate
(从整数创建
TDate
现在(检索当前日期为
TDate
)和
DateUtils.DaysBetween
(以天为单位获取两个日期之间的差值)


我认为您可以使用Delphi帮助自己计算出这些函数的其余部分。

使用Copy提取年、月、日的3个子字符串。然后stroint将它们转换为整数,然后EncodeDate将3个整数转换为TDateTime

TDateTime是一个浮点数,计算小数点前的整天,并将当天的时间作为小数点后的分数

在SysUtils中有一个名为Date:TDateTime的函数,它返回当前日期


您只需从Date返回的值中减去从字符串中解析出来的TDateTime,即可得到它们之间的天数差。

但是如何将结果之间的天数转换为整数?我使用floattostr来显示该金额,但我总是得到“32667740491323E268”…
DaysBeween
确实返回一个整数。如果使用“Date”而不是“Now”,则应该没有分数,也不需要在两者之间调用DaysBeween,只需将这两个值相减。使用Trunc()而不是舍入。它只是将整数部分(不含小数)作为Int64返回。那你就不需要两天的时间了;简单的整数数学将给出天数。如果您找到问题的答案,您可以单击答案左侧的勾号接受。