请问怎么可以得到一个日期差?

lanziman 2003-12-08 11:04:52
var
D1,D2:TDate;
money:float;


我要把一个日期:
D1:=2003-12-9
D2:=2003-12-5
money:=8*StrToFloat(DateToStr(D1-D2));
我要实现的是金额=8*日期间隔
但是这样实现出现了日期取出的错误。



...全文
64 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongqi162 2003-12-09
  • 打赏
  • 举报
回复

money:=8*(D1-D2);
LunTanZeng 2003-12-09
  • 打赏
  • 举报
回复
在SQL数据库中很好计算天数差的
tglong 2003-12-09
  • 打赏
  • 举报
回复
var
dd1,dd2 : TDate;
i : integer;
begin
dd1 := StrtoDate('2003-12-9');
dd2 := strtodate('2003-12-5');
i := 8 * trunc(dd1)-trunc(dd2);
end;
sundayboysII 2003-12-09
  • 打赏
  • 举报
回复
为什么borland提供那么多的函数,大家不用,偏要自己写8*(D1-D2),如果100000×(D1-D2)估计误差可以让人头痛了。

去看看delphi帮助里边的DaysBetween函数。
Returns the number of whole days between two specified TDateTime values.

Unit

DateUtils

Category

datetime routines

Delphi syntax:

function DaysBetween(const ANow, AThen: TDateTime): Integer;

C++ syntax:

extern PACKAGE int __fastcall DaysBetween(const System::TDateTime ANow, const System::
TDateTime AThen);

Description

Call DaysBetween to obtain the difference, in days, between two TDateTime values.

DaysBetween counts only whole days. Thus, DaysBetween reports the difference between Dec 31, 1999 11:59 PM and Jan 1, 2000 11:58 PM as 0 because the difference is one minute short of an entire day.
Alanwn 2003-12-09
  • 打赏
  • 举报
回复
var
D1,D2,D3:TDate;
money:float;
begin
D3:=D1-D2;
Money:=8* D3;
end;
Alanwn 2003-12-09
  • 打赏
  • 举报
回复
如果你把它们都定义成tdatatime的话,就可以直接减了
lanziman 2003-12-09
  • 打赏
  • 举报
回复
从来没用过TDate的数据,所以不大熟悉。谢谢大家的指点!
亲密数 2003-12-08
  • 打赏
  • 举报
回复
TDate实际是double型。
整数部分的差值就是天数。
cqbonny 2003-12-08
  • 打赏
  • 举报
回复
ok
耙子 2003-12-08
  • 打赏
  • 举报
回复
你对基本数据类型的理解太差了。

money:=8*(D1-D2);

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧