CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

关于时间相减的问题

楼主netlark(云雀)2000-11-28 12:00:00 在 Delphi / VCL组件开发及应用 提问

在delphi   和Sql   Server   中怎么实现时间相减?我知道有DateTimeToTimeStamp   和  
  TimeStampToMsecs的函数!但不知道怎么用! 问题点数:20、回复次数:9Top

1 楼zswang(伴水清清)(专家门诊清洁工)回复于 2000-11-28 16:43:00 得分 0

再说详细一点Top

2 楼zswang(伴水清清)(专家门诊清洁工)回复于 2000-11-28 17:49:00 得分 5

function   TimeToSeconds(mTime:   TTime):   Integer;  
  var  
      Hour,   Min,   Sec,   MSec:   Word;  
  begin  
      DecodeTime(mTime,   Hour,   Min,   Sec,   MSec);  
      Result   :=   Hour   *   60   *   60   +   Min   *   60   +   Sec;  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      Time1,   Time2:   TTime;  
  begin  
      Time1   :=   StrToTime(Edit1.Text);  
      Time2   :=   StrToTime(Edit2.Text);  
      Edit3.Text   :=   IntToStr(TimeToSeconds(Time2)   -   TimeToSeconds(Time1));  
  end;  
  Top

3 楼xixi12359(xixi12359)回复于 2000-11-29 16:15:00 得分 0

sql:   datediff(dd,time1,time2)Top

4 楼netlark(云雀)回复于 2000-11-30 15:09:00 得分 0

xixi12359:  
                    你能说的详细一些吗?  
  Top

5 楼flykite(风筝)回复于 2000-11-30 15:31:00 得分 5

这是我刚试出来的.计算时差(包含日期、时间).  
  我的历时就是这样算出来的  
  Var   NewDate,OldDate:Tdate;  
          newTime,OldTime:Ttime;  
          OYear,OMonth,ODay,OHour,OMin,OSec,OMsec,Nyear,Nmonth,Nday,Nhour,Nmin,Nsec,NMsec:Word;  
          Lstime:integer;  
  begin  
        NewTime:=StrToTIme(Edit5.Text);  
        OldTime:=StrToTime(Edit4.Text);  
        NewDate:=StrToDate(Edit1.Text);  
        OldDate:=StrToDate(Edit2.Text);  
        DecodeDate(OldDate,OYear,OMonth,ODay);  
        DecodeTime(OldTime,OHour,OMin,OSec,OMsec);  
        DecodeDate(NewDate,Nyear,NMonth,NDay);  
        DecodeTime(NewTime,NHour,NMin,NSec,NMsec);  
        Lstime:=(NMonth-OMonth)*30*24*60+(Nday-Oday)*24*60+(NHour-OHour)*24+(NMin-OMin);  
        Edit3.Text:=IntToStr(Lstime);  
   
  end;Top

6 楼dark_thor(dark_thor)回复于 2000-11-30 16:05:00 得分 5

如果天、时、分、秒则非常简单。  
  var   date1,date2:TDateTime;//或TDate   、TTime  
  取天   round(date1-date2);  
  取时   round((date1-date2)*24);  
  取分   round((date1-date2)*24*60);  
  取秒   round((date1-date2)*24*60*60);  
  如取年或月也应十分简单,你可以自己试一下。Top

7 楼why_wf(假面人)回复于 2000-11-30 16:20:00 得分 3

var    
      time1,time2   tdatetime;  
      usetime:single;  
  begin  
          time1:=now;  
          time2:=shangjitime;  
          usetime:=(time1-time2)*24//获得小时数同理乘以一天的分钟数获得相差的分钟数.  
  endTop

8 楼wenzm(魔术师)回复于 2000-11-30 19:03:00 得分 2

SQlServer   中用DATEADD(datepart,   number,   date)  
    函数,躯体用法查阅SQLserver   的随机文档!  
  DelPhi   中就用dark_thor   的方法吧!Top

9 楼netlark(云雀)回复于 2000-12-01 10:22:00 得分 0

谢谢大家的支持!Top

相关问题

  • 时间相减的问题
  • 时间相减问题?
  • 时间类型相减
  • 时间相减,可以得到相减的秒数?
  • 时间怎么相减?急!急!急!
  • 关于时间相减的问题?
  • 急!两个时间相减如何做
  • 时间相减的问题?急哦~
  • 时间相减简单问题
  • 如何把时间相减,求助中?

关键词

  • date
  • sec
  • lstime
  • olddate
  • ohour
  • omin
  • omonth
  • ttime
  • strtotime
  • timetoseconds

得分解答快速导航

  • 帖主:netlark
  • zswang
  • flykite
  • dark_thor
  • why_wf
  • wenzm

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo