关于两日期型变量相减的问题?

ItOldHorse 2003-08-23 10:42:30

d1,d2:Tdatetime

d1:=strtodatetime('2003-2-1 12:12');
d2:=strtodatetime('2003-2-1 01:12');

如何求出d1与d2相隔多少小时?

d1:=strtodatetime('2003-2-1');
d2:=strtodatetime('2003-4-5');

如何求出d1与d2相隔多少天?



...全文
99 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
雨后阳光2000 2003-08-23
  • 打赏
  • 举报
回复
monthsbetween(const anow,athen:TDtatetime);引用单元dateutils
daysbetween(const anow,athen:TDatetime);引用单元dateutils
yk_xiong 2003-08-23
  • 打赏
  • 举报
回复
1. ( d2-d1 ) * 24 小时数
2. (d2-d1) 天数

不过浮点数运算有点误差
z_hongbao 2003-08-23
  • 打赏
  • 举报
回复
procedure DecodeDateTime(const AValue: TDateTime; out AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word);

LiuXing123 2003-08-23
  • 打赏
  • 举报
回复
DATEDIFF ( datepart , startdate , enddate ) 这个函数,数据库是sqlserver吗?其中
参数: 返回值:=DATEDIFF ( day , d2, d1) 或 返回值:=DATEDIFF ( dd , d2, d1)
hanzq 2003-08-23
  • 打赏
  • 举报
回复
自己研究一下吧

procedure TForm1.Button1Click(Sender: TObject);

var
Present: TDateTime;
Year, Month, Day, Hour, Min, Sec, MSec: Word;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
Label1.Caption := 'Today is Day ' + IntToStr(Day) + ' of Month '
+ IntToStr(Month) + ' of Year ' + IntToStr(Year);
DecodeTime(Present, Hour, Min, Sec, MSec);
Label2.Caption := 'The time is Minute ' + IntToStr(Min) + ' of Hour '
+ IntToStr(Hour);
end;
hanzq 2003-08-23
  • 打赏
  • 举报
回复
用decodetime函数获取各时间的值然后再相减
ItOldHorse 2003-08-23
  • 打赏
  • 举报
回复
sixgj 2003-08-23
  • 打赏
  • 举报
回复
这么麻烦啊。
redcom 2003-08-23
  • 打赏
  • 举报
回复
我今天刚解决的问题
类型转化一下就可以了,如下面:要放上datatimepicker控键
如下

edit1.Text:=(floattostr(d1.Date-d2.Date))

比方说d1的时间是2003-8-18
d2的时间是2003-8-23
则edit1.text的结果就是5
小时当然就不用我说了!直接*24就行了

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧