请问,如何计算两个给定日期间的间隔天数?(先谢了...)(100分)

  • 主题发起人 主题发起人 FreeKen
  • 开始时间 开始时间
F

FreeKen

Unregistered / Unconfirmed
GUEST, unregistred user!
请问在DELPHI中有没有计算两个给定日期间间隔天数的函数?如无,有计算上有什么
简便的方法? 谢谢了!!!!
 
两个日期相减,再取整就是啦。
 
加一句,日期型就是浮点型。
 
date1:=now();
date2:=date1+21;
label1.Caption:=datetostr(date2);
 
type TDateTime = type Double;
 
var
d1,d2:TDateTime;
value:integer;
begin
d1:=StrToDate('01-11-15');
d2:=date();
value:=Trunc(d1-d2);
end;
 
function GetDates(D1,D2:TDate):Integer;
begin
Result:=Trunc(D2-D1);
end;
 
function GetDates(D1,D2:TDate):Integer;
begin
Result:=Trunc(D2-D1);
end;
 
两个日期型的变量直接相减就行了,
日期型本来就是浮点型的。
 
function DaysBetween(const ANow, AThen: TDateTime): Integer;

Description

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

DaysBetween counts only whole days that have elapsed. 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.
 
是否存在平年,闰年的问题
 
取整后相减
 
To :是否存在平年,闰年的问题
不会
 
Delphi自己会区分的,你可以试一下。
 
你不用担心那么多,日期型其实是浮点型的,你将大的日期减去小的日期得到的浮点数进1
取整就是它们之间相差的天数了。
 
var
Date1,Date2:TDateTime;
i:real;
begin
...
Date1:=Now;
Date2:=StrToDate('2001-11-10');
i:=Int(Date1-Date2);//i就是2个时间差的天数
showmessage(floatToStr(i));
end;
 
日期型是浮点型。有一个时间基数,整数部分表示从基数到现在的天数,不足一天的部分用小数表示
以毫秒为单位,delphi的帮助中说日期型的基数为12/30/1899。
 
多人接受答案了。
 
后退
顶部