计算两个日期之间的天数

Hay*_*yev 3 delphi datetime date delphi-7

请帮我找两个日期之间的日子.

我有两个对象TDBDateEdit date1和date2.

procedure Torder_form.date2Click(Sender: TObject);
var d3: TDateTime;
begin 
    d3:=date2.date - date1.date;
    showmessage(datetostr(d3));
end.
Run Code Online (Sandbox Code Playgroud)

我付了 date1 = 07.10.2015

至 date2 - 15.11.2015

结果必须是: 39

但程序给了我结果: 07.02.1900


我找到了DaysBetween函数.我改变了我的代码

procedure Torder_form.date2Click(Sender: TObject);
var d3: TDateTime;
begin 
    d3:=DaysBetween(date2.date,date1.date);
    showmessage(datetostr(d3));
end.
Run Code Online (Sandbox Code Playgroud)

但节目说结果: 07.02.1900

Ken*_*ite 10

您试图在值中存储非日期值(两个日期之间的天数)TDateTime.由于您不想要日期,请改用double,并将其解释为double:

var
  DaysDiff: Double;
begin
  DaysDiff := Date2.Date - Date1.Date;
  ShowMessage(FloatToStr(DaysDiff));
end;
Run Code Online (Sandbox Code Playgroud)

更好的是,使用函数DateUtils为您完成工作.如果您只需要整天,请使用DaysBetween:

var
  DaysDiff: Integer;
begin
  DaysDiff := DaysBetween(Date2.Date, Date1.Date);
  ShowMessage(IntToStr(DaysDiff));
end;
Run Code Online (Sandbox Code Playgroud)

如果您需要分数(部分)天,请使用DaySpan:

var
  DaysDiff: Double;
begin
  DaysDiff := DaySpan(Date2.Date, Date1.Date);
  ShowMessage(FloatToStr(DaysDiff));
end;
Run Code Online (Sandbox Code Playgroud)