就是想用今天的日期, 减去以前的时间得到相差的天数?
例如:今天 是2007-6-15 减去2007-6-12就得到相差天数3这就是我要的效果!

解决方案 »

  1.   

    uses DateUtils;使用DaysBetween函数,如:  showmessage('今天距北京奥运会开幕还有'+inttostr(DaysBetween(date,StrToDate('2008-08-08')))+'天.');-----------------------------------
    http://kmok.cn/
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      n: Integer;
    begin
       n := DaysBetween(Now,DateTimePicker1.Date);
       ShowMessage(IntToStr(n));
    end;///
    DaysBetween Routine
     
    Returns the number of whole days between two specified TDateTime values.
     
    Unit 
    DateUtils Syntax 
    [Delphi] function DaysBetween(const ANow: TDateTime, const AThen: TDateTime): Integer;
    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.
     
      

  3.   

    日期是一个double行,整数部分表示年月日,小数部分表示时分秒...
    所以取整相减就可以了,1楼的就是了
      

  4.   

    DateUtils有很多日期算法,基本上很多都有函数直接用
      

  5.   

    Day 开头的函数

    UnitDateUtilsfunction DateOf(const AValue: TDateTime): TDateTime;描述
    使用 DateOf 函数用来把一个 TDateTime 类型的变量转变成一个
    只带有日期的 TDateTime 类型变量。
    例如:
    showmessage(DateTimetostr(dateof(now())));
    你得到的是 2003/03/19
    而 showmessage(DateTimetostr((now())));
    得到的是 2003/03/19 10:50:49●function DateTimeToStr(DateTime: TDateTime): string;描述
    DateTimeToString 函数将 TDateTime 类型的参数 DateTime 转换成一个
    字符串,使用给定的全局变量 ShortDateFormat 的格式,时间部分按照
    给定的全局变量 LongTimeFormat 的格式。
    其中 DateTime 为零的部分将不会显示出来。例如:
    ShortDateFormat:='yyyy mm dd';
    showmessage(DateTimetostr((now())));
    你将得到:2003 03 19 10:50:49
    ●procedure DateTimeToString(var Result: string; const Format: string; DateTime: TDateTime);描述:
    DateTimeToString 方法将TDateTime类型的参数DateTime 按照由参数Format提供的格式
    转化成字符串,并保存在Result中。
    对于Format的格式类型,请看 Date-Time format strings 的帮助。例如: 
    DateTimeToString(result,'yyyy mm dd',now());
    那么 result的结果为:2003 03 19 10:50:49●procedure DateTimeToSystemTime(DateTime: TDateTime; var SystemTime: TSystemTime);描述:
    有时为了调用API函数来使用系统时间,你可以使用 DateTimeToSystemTime 方法,来将一个
    TDateTime 类型的时间变量转换成一个 TSystemTime 类型的 系统时间。●function DateTimeToUnix(const AValue: TDateTime ): Int64;描述:
    使用 DateTimeToUnix 函数来将一个 TDateTime 型时间变量转换成一个相应的 Unix 格式
    的日期和时间。
    Unix date-and-time values are encoded as the number of seconds that have elapsed
    since midnight at the start of January 1, 1970.
    ●function DateToStr(Date: TDateTime): string;描述:
    使用 DateToStr 函数能得到 TDateTime 日期时间类型的日期部分。日期的转换格式依赖于
    全局变量 ShortDateFormat。●function DayOf(const AValue: TDateTime): Word;描述:
    对于给定的TDateTime类型的日期时间,使用 DayOf 函数能得到该日期是该月份的第几天。
    该函数的返回数值在 1 到 31 之间
    注意:DayOf 函数得到的结果与 DayOfTheMonth 相同。例如:
    showmessage(inttostr(dayof(now)));
    得到的是:19 (今天是 某月19日)●function DayOfTheMonth(const AValue: TDateTime): Word;与 DayOf 相同。●function DayOfTheWeek(const AValue: TDateTime): Word;描述:
    对于给定的TDateTime类型的日期时间,使用 DayOfTheWeek 函数能得到该日期是该星期的
    第几天。DayOfTheWeek 函数的返回数值为 1 到 7,其中 1 表示星期一,而 7 表示星期日。
    注意:DayOfTheWeek 是 ISO 8601 标准的(此标准为 星期一是一周的第一天)。对于一周
    的第一天是星期日的标准,如果想获得星期数,请使用 DayOfWeek 函数。
    Tip: To make the return value more readable, use the Day of week constants.●function DayOfTheYear(const AValue: TDateTime): Word;描述:
    根据给定的日期时间参数AValue,使用 DayOfTheYear 函数能得到在该日期所在的年份中,该
    日期按照顺序所计算的天数。因此,作为TDateTime类型的变量 “1月1日”在该函数所得到的
    结果为 1 ,“1月2日”所得到的结果为 2,“2月1日”所得到的结果就为 32,依次类推。●function DayOfWeek(Date: TDateTime): Integer;DescriptionDayOfWeek returns the day of the week of the specified date as an integer between
    1 and 7, where Sunday is the first day of the week and Saturday is the seventh.Note: DayOfWeek is not compliant with the ISO 8601 standard, which defines Monday
    as the first day of the week. For an ISO 8601 compliant version, use the DayOfTheWeek
    function instead.描述:
    按照给定的TDateTime类型的参数Date,DayOfWeek 函数得到一周中的第几天,从1到7。
    这里 星期日 是一周的第一天,而 星期六 是第七天。●function DaysBetween(const ANow, AThen: TDateTime): Integer;描述:
    根据两个TDateTime类型的日期时间变量 ANow 和 AThen,DaysBetween函数能得到两者之间的
    天数的差距。
    DaysBetween 仅仅根据天数的不同来计算。因此,对于 1999年12月31日 下午11点59分 到
    2000年1月1日 11点58分,该函数得到的结果是 0,因为两者之间的时间差别还差 1 分钟才到
    1 天。●function DaysInAMonth(const AYear, AMonth: Word): Word;描述:
    对于各定的 年份和月份,DaysInAMonth 函数能得到 该月份的总天数。
    年份应该为 从 1 到 9999
    月份应该为 从 1 到 12●function DaysInAYear(const AYear: Word): Word;描述:
    对于给定的年份,DaysInAYear函数能得到该年份的总天数。
    年份应该为 1 到 9999。●function DaysInMonth(const AValue: TDateTime): Word;描述:
    根据给定的TDateTime类型的时间日期参数AValue,DaysInMonth函数能得到该月份的总天数。●function DaysInYear(const AValue: TDateTime): Word;描述:
    根据给定的TDateTime类型的时间日期参数AValue,DaysInYear函数能得到该年份的总天数。●function DaySpan(const ANow, AThen: TDateTime): Double;描述:
    根据两个TDateTime类型的日期时间参数ANow和AThen,DaySpan能得到在天数上的差距。
    与 DaysBetween 函数不同,DaysBetween 函数 只是计算 整的天数,而 DaySpan函数会
    将不足一天的数也得到。
    注意:此函数返回的数值为 Double 型。
      

  6.   

    ☆ Month 开头的函数●function MonthOf(const AValue: TDateTime): Word;描述:
    根据给定的TDateTime类型的时间日期参数AValue,MonthOf函数能得到该年份的该月份数。
    MonthOf返回数值为 1 到 12。
    注意:MonthOf函数得到的数值与MonthOfTheYear函数相同●function MonthOfTheYear(const AValue: TDateTime): Word;与MonthOf函数相同。●function MonthsBetween(const ANow, AThen: TDateTime): Integer;描述:
    根据两个给定的TDateTime类型的参数ANow和AThen,MonthsBetween函数能得到两个日期在月份
    上差距数。因为月份的天数是不同的,所以 MonthsBetween 函数返回的是一个近似值,该近似
    值基于每个月份为 30.4375 天。不足一个月的数字将不被计算。
    因此,例如,对于 2月1日 到 2月28日,MonthsBetween 返回的数值为 0。
    同样,对于 2月1日 到 3月1日,MonthsBetween 返回的数值也是 0。●function MonthSpan(const ANow, AThen: TDateTime): Double;描述:
    根据两个给定的TDateTime类型的参数ANow和AThen,MonthsBetween函数能得到两个日期在月份
    上差距数。因为月份的天数是不同的,所以 MonthsBetween 函数返回的是一个近似值,该近似
    值基于每个月份为 30.4375 天。与 MonthsBetween 函数不同,MonthsBetween函数不计算不足
    一个月的数字,MonthSpan函数将会得到不足一个月的数字。
    注意:此函数返回的类型为 Double●function MonthStr(DateTime: TDateTime): string;DescriptionHTTP message headers permit several formats for the representation of date and time 
    values. MonthStr converts a TDateTime value into a string representing the month. 
    MonthStr allows server applications to work with date values taken from HTTP request 
    messages, without worrying about the details of how they are formatted.☆ Week 开头的函数●function WeekOf(const AValue: TDateTime): Word;描述:
    根据TDateTime类型的日期时间参数AValu,WeekOf函数会得到该星期为一年的第几个
    星期。●function WeeksInAYear(const AYear: Word): Word;描述:
    WeeksInAYear 函数根据年份得到在该年份中共包含多少个星期。●function WeeksBetween(const ANow, AThen: TDateTime): Integer;描述:
    根据两个TDateTime类型的日期时间参数ANow和AThen,WeeksBetween函数将得到这两个时间在
    星期上的差数。如果差数不足一个星期,则忽略掉。●function WeekSpan(const ANow, AThen: TDateTime): Double;描述:
    根据两个TDateTime类型的日期时间参数ANow和AThen,WeeksBetween函数将得到这两个时间在
    星期上的差数。如果差数不足一个星期,则WeekSpan函数不会忽略掉。
    注意:此函数的返回类型为 Double
      

  7.   

    ☆ Year 开头的函数●function YearOf(const AValue: TDateTime): Word;描述:
    根据给定的TDateTime类型的日期时间参数AValue,YearOf函数能得到该日期的年份数字。
    YearOf函数返回的数值为从 1 到 9999●function YearsBetween(const ANow, AThen: TDateTime): Integer;描述:
    根据两个给定的TDateTime类型的参数ANow和AThen,YearsBetween函数能得到两个日期在年份
    上差距数。因为年份的天数是不同的,所以 YearsBetween 函数返回的是一个近似值,该近似
    值基于每年的天数为 365.25 天。不足的一年的差距将不会被计算。
    因此例如:对于 1月1日和12月31日,如果这两个日期在同一年,则 YearsBetween 返回数值
    为 0;如果这两个日期在临近的年份,则 YearsBetween 函数返回数值为 1。●function YearSpan(const ANow, AThen: TDateTime): Double;描述:
    根据两个给定的TDateTime类型的参数ANow和AThen,YearsBetween函数能得到两个日期在年份
    上差距数。因为年份的天数是不同的,所以 YearsBetween 函数返回的是一个近似值,该近似
    值基于每年的天数为 365.25 天。与 YearsBetween 函数不同,YearsBetween函数将忽略掉不
    足一年的数字,而 YearSpan 将计算不足一年的数字。
    注意:该函数返回类型为Double 
    ●function Yesterday: TDateTime;描述:
    Yesterday函数能得到当前日期的前一天的日期,返回数值中不包括时间部分。
    例如:
    当前日期是 2003/3/19
    则 showmessage(datetimetostr(Yesterday));
    将得到 2003/3/18
      

  8.   

    太麻烦了,两个日期变量相减就可以得到Integer类型的值
      

  9.   

    兄弟們,俺搞定了
      剛才忘了在接口部分加DateUtils了,謝謝各位高手!!!!
      

  10.   

    Trunc(Date1)-Trunc(Date2)这个可以