时间类型的转换问题

xinghf 2003-07-12 11:32:38
将TDataTime转换为字符串很方便,但是如何把一个既有日期又有时间的字符串转换为TDataTime。
转换为TDataTime后如何计算两个时间的间隔,要求结果以秒来表示。

请提供线索 马上结贴
...全文
49 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinghf 2003-07-13
  • 打赏
  • 举报
回复
谢谢各位 问题已经解决
secondspan(datetime1,datetime)函数就可以.
猎人66 2003-07-12
  • 打赏
  • 举报
回复
忘了,两个时间相减的结果是天数:

TDateTime date1=StrToDateTime("2003-07-12 12:59:59"),//注意系统时间格式
date2=StrToDateTime("2003-07-12 12:59:57");
double i=date1-date2;//天数
int second=int(i*24*60*60);//转换成秒数
ShowMessage(IntToStr(second));
c2y 2003-07-12
  • 打赏
  • 举报
回复
#include <SysUtils.hpp>


TDateTime dt,Default;
AnsiString S;
dt = StrToDateTime(S);或者
dt = StrToDateTimeDef(S, Default);

计算时间间隔(以秒记)
int t;
TDateTime dt1,dt2;
double def;
def=dt1-dt2;
if(def<0) def=-def;
t=def*24*3600+0.5;


猎人66 2003-07-12
  • 打赏
  • 举报
回复
1,StrToDateTime()

2,TDateTime date1=now(),date2=StrToDateTime("2003-12-31"),
double space=date2-date1;
jishiping 2003-07-12
  • 打赏
  • 举报
回复
把一个既有日期又有时间的字符串转换为TDataTime
用函数StrToDateTime就可以了,不过需要注意日期时间格式。可能需要设定ShortDateFormat、DateSeparator、TimeSeparator这几个全局变量。

计算两个时间的间隔,要求结果以秒来表示。
WORD H,M,S,MS;
TDateTime dt;
TDateTime date1=StrToDateTime("2003-07-12 12:59:59");
TDateTime date2=StrToDateTime("2003-07-12 12:00:05");
dt = date1>date2 ? date1-date2 : date2-date1;
dt.DecodeTime(&H, &M, &S, &MS);
int nSecond = int(dt)*24*3600+H*3600+M*60+S; //相差的秒数

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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