var s, e: TTimeStamp; tt: Double; begin s := DateTimeToTimeStamp(timeStart); e := DateTimeToTimeStamp(timeEnd); tt := (e.Time - s.Time) / 1000; // 得到两个时间相差了的秒数,自己举一反三
var date1,date2:TDate; begin date1:=DateTimePicker1.Date; date2:=DateTimePicker2.Date;ShowMessage('共差'+IntToStr(DaysBetween(date1,date2))+'天');智能得到的是天数,但不是想象中的xxxx年xx月xx日的效果!
这是你要的效果吗? unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DateUtils, ComCtrls, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; DateTimePicker1: TDateTimePicker; DateTimePicker2: TDateTimePicker; DateTimePicker3: TDateTimePicker; procedure Button1Click(Sender: TObject); private { Private declarations } function TimeBetween(A, B: TDateTime): string; public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Lines.Add(TimeBetween(DateTimePicker1.Date, DateTimePicker2.Date)); end;function TForm1.TimeBetween(A, B: TDateTime): string; var Y, M, Day: Integer; C, D: TDateTime; sA, sB: string; begin if Trunc(A) > Trunc(B) then begin Result := 'Error'; exit; end; if Trunc(A) = Trunc(B) then begin Result := '0Y0M0D'; exit; end; Y := YearsBetween(B, A); M := MonthsBetween(B, A); M := M - Y * MonthsPerYear; Day := DaysBetween(B, A) - Trunc(Y * ApproxDaysPerYear) - Trunc(M * ApproxDaysPerMonth); Result := IntToStr(Y) +'Y'+ IntToStr(M) +'M'+ IntToStr(Day) +'D'; end;end.
var
s, e: TTimeStamp;
tt: Double;
begin
s := DateTimeToTimeStamp(timeStart);
e := DateTimeToTimeStamp(timeEnd);
tt := (e.Time - s.Time) / 1000; // 得到两个时间相差了的秒数,自己举一反三
date1,date2:TDate;
begin
date1:=DateTimePicker1.Date;
date2:=DateTimePicker2.Date;ShowMessage('共差'+IntToStr(DaysBetween(date1,date2))+'天');智能得到的是天数,但不是想象中的xxxx年xx月xx日的效果!
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DateUtils, ComCtrls, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
DateTimePicker3: TDateTimePicker;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
function TimeBetween(A, B: TDateTime): string;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add(TimeBetween(DateTimePicker1.Date, DateTimePicker2.Date));
end;function TForm1.TimeBetween(A, B: TDateTime): string;
var
Y, M, Day: Integer;
C, D: TDateTime;
sA, sB: string;
begin
if Trunc(A) > Trunc(B) then
begin
Result := 'Error';
exit;
end; if Trunc(A) = Trunc(B) then
begin
Result := '0Y0M0D';
exit;
end; Y := YearsBetween(B, A); M := MonthsBetween(B, A);
M := M - Y * MonthsPerYear;
Day := DaysBetween(B, A) - Trunc(Y * ApproxDaysPerYear) - Trunc(M * ApproxDaysPerMonth);
Result := IntToStr(Y) +'Y'+ IntToStr(M) +'M'+ IntToStr(Day) +'D';
end;end.