随笔 - 2146  文章 - 97 评论 - 11767 trackbacks - 253

DateUtils.YearsBetween();
DateUtils.MonthsBetween();
DateUtils.WeeksBetween();
DateUtils.DaysBetween();
DateUtils.HoursBetween();
DateUtils.MinutesBetween();
DateUtils.SecondsBetween();
DateUtils.MilliSecondsBetween();

DateUtils.YearSpan();
DateUtils.MonthSpan();
DateUtils.WeekSpan();
DateUtils.DaySpan();
DateUtils.HourSpan();
DateUtils.MinuteSpan();
DateUtils.SecondSpan();
DateUtils.MilliSecondSpan();


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses DateUtils;

procedure TForm1.FormCreate(Sender: TObject);
var
  t1,t2: TDateTime;
  i: Int64;
  d: Double;
begin
  t1 := StrToDateTime('2009-5-20 11:22:33');
  t2 := StrToDateTime('2020-9-21 22:33:44');

  i := YearsBetween(t1, t2);        //11
  i := MonthsBetween(t1, t2);       //136
  i := WeeksBetween(t1, t2);        //591
  i := DaysBetween(t1, t2);         //4142
  i := HoursBetween(t1, t2);        //99419
  i := MinutesBetween(t1, t2);      //5965151
  i := SecondsBetween(t1, t2);      //357909071
  i := MilliSecondsBetween(t1, t2); //357909070999

  i := YearsBetween(t2, t1);        //11, 参数无先后

  {下面这个系列返回的时间间隔是 Double 类型的, 更精确}
  d := YearSpan(t1, t2);        //11.3414540712855
  d := MonthSpan(t1, t2);       //136.097448855426
  d := WeekSpan(t1, t2);        //591.780871362434
  d := DaySpan(t1, t2);         //4142.46609953704
  d := HourSpan(t1, t2);        //99419.1863888889
  d := MinuteSpan(t1, t2);      //5965151.18333333
  d := SecondSpan(t1, t2);      //357909071
  d := MilliSecondSpan(t1, t2); //357909071000
end;

end.


DateUtils-Function
posted on 2009-05-20 12:55  万一  阅读(...)  评论(...编辑  收藏