软件注册站
热情软件屋

 
Delphi中有没有时间相减的函数
编号: QA003422    
建立日期: 2000年10月17日 最后修改日期: 2004年9月5日
所属类别: Delphi - 其他方面
   
    操作系统: win98
    编程工具: Delphi
    问题: 请问:Delphi中有没有时间相减的函数,例如VB下的DateDiff那样的。
    水平: 刚入门(yk)
   
    Delphi中表示时间通常使用TDateTime类型,这个类型实际上是Double类型。整数部分表示自12/30/1899以来的天数,而小数部分是将不足一天的部分除以24小时,如上午6点是0.25。要进行时间运算只需要直接进行加减就可以了。
    
    jq_com问:
     分、秒或除不尽怎么办?
    答:
    确切的计算公式是:
    Time := (Hour * 3600000 + Min * 60000 + Sec * 1000 + MSec) / MSecsPerDay;
    其中MSecsPerDay是每天所拥有的秒数。除不尽也没有什么关系,Double类型的精度完全可以保证你在转换DateTime类型转换为String类型时不会出错。
    
    phil的意见:
    你可以直接减,sample
    uses DateUtils;
    
    var
     A,B,C:Datetime;
    begin
     A:=now;
     B:= DateTimeToStr('2000-01-01 12:23:11');
     C:=A-B; //C就是相差的时间,以天为单位
    
     //或是采用DELPHI自带函数
     ShowMessage(IntToStr(YearsBetween(A,B)) + '年');
     ShowMessage(IntToStr(MonthsBetween(A,B)) + '月');
     ..... //以此类推
     ShowMessage(IntToStr(MilliSecondsBetween(A,B)) + '毫秒');
    
    end;
    
    

    程序在delphi6上通过。
    
    simon的意见:
    用DateUtils中的minutesBetween函数

    

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, Delphi, VCL, Borland, 其他方面,

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio