MFC中有什么关于时间的数据类型吗?

junliang0824 2010-08-11 01:00:50
我的程序中有这样的需求。就是先确定一点,然后记下初始时间,当再确定下一点时,记下第一点到第二点的时间。依次记下所有点之间的时间,时间的长短都是由确定两点时的时间差来确定。
不知道大家明白我的意思不!
我就想用一个能能存时间的数组。
每次确定点时就用一个A记下现在的时间。然后当再确定一点时,再用现在的时间减去A就是这段时间了,把这段时间存入我那数组中
...全文
293 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
datoucaicai 2010-08-16
  • 打赏
  • 举报
回复
记下第一点时间
CTime t1 = CTime::GetCurrentTime();
在第二点时
CTime t2 = CTime::GetCurrentTime();
CTimeSpan ts = t2 - t1; // 两点时间差单位为秒

...

int iInterval = ts.GetTotalSeconds( );
将 iInterval 作为SetTime的第二个参数

//ding 菜鸡
tankgreat 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 gao_zilai 的回复:]
引用 12 楼 junliang0824 的回复:
引用 11 楼 djyrsty 的回复:
记下第一点时间
CTime t1 = CTime::GetCurrentTime();
在第二点时
CTime t2 = CTime::GetCurrentTime();
CTimeSpan ts = t2 - t1; // 两点时间差单位为秒

前日提出此问题,后来以为得到了解决。其实还……
[/Quote]
iInterval得到的是秒数,再乘以1000才能当settimer的第二个参数,这样就应该没问题了
码侬 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 junliang0824 的回复:]
引用 11 楼 djyrsty 的回复:
记下第一点时间
CTime t1 = CTime::GetCurrentTime();
在第二点时
CTime t2 = CTime::GetCurrentTime();
CTimeSpan ts = t2 - t1; // 两点时间差单位为秒

前日提出此问题,后来以为得到了解决。其实还没
这样确实是得到了一个时间ts
可是我得到的这个……
[/Quote]

记下第一点时间
CTime t1 = CTime::GetCurrentTime();
在第二点时
CTime t2 = CTime::GetCurrentTime();
CTimeSpan ts = t2 - t1; // 两点时间差单位为秒

...

int iInterval = ts.GetTotalSeconds( );
将 iInterval 作为SetTime的第二个参数
Q446512799 2010-08-13
  • 打赏
  • 举报
回复
说错了,说成num转字符串了,不好意思~~
数字组成字符串转换成num
num=atoi(str);
实在不好意思-_-
Q446512799 2010-08-13
  • 打赏
  • 举报
回复
CTime time=CTime::GetCurrentTime();
CString str=time.Format("%H:%M:%S");
你可以把str换成秒,然后
itoa(num,str,10);把数字组成字符串转换成num
junliang0824 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 djyrsty 的回复:]
记下第一点时间
CTime t1 = CTime::GetCurrentTime();
在第二点时
CTime t2 = CTime::GetCurrentTime();
CTimeSpan ts = t2 - t1; // 两点时间差单位为秒
[/Quote]
前日提出此问题,后来以为得到了解决。其实还没
这样确实是得到了一个时间ts
可是我得到的这个时间将来是要用来在SetTime中做第二个参数的,但是当我用ts时说数据类型不符合,强制转换该如何转,怎么办?
djyrsty 2010-08-11
  • 打赏
  • 举报
回复
记下第一点时间
CTime t1 = CTime::GetCurrentTime();
在第二点时
CTime t2 = CTime::GetCurrentTime();
CTimeSpan ts = t2 - t1; // 两点时间差单位为秒
zgl7903 2010-08-11
  • 打赏
  • 举报
回复
CTime t1(1999, 3, 19, 22, 15, 0); // 10:15 PM March 19, 1999
CTime t2(1999, 3, 20, 22, 15, 0); // 10:15 PM March 20, 1999
CTimeSpan ts = t2 - t1; // Subtract 2 CTimes
ATLASSERT(ts.GetTotalSeconds() == 86400L);
ATLASSERT((t1 + ts) == t2); // Add a CTimeSpan to a CTime.
ATLASSERT((t2 - ts) == t1); // Subtract a CTimeSpan from a CTime.
junliang0824 2010-08-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 teleinfor 的回复:]
SYSTEMTIME sysTime;
SYSTEMTIME localTime;
::GetSystemTime(&sysTime);
::GetLocalTime(&localTime);
[/Quote]
这两句是什么作用呢?
teleinfor 2010-08-11
  • 打赏
  • 举报
回复
SYSTEMTIME sysTime;
SYSTEMTIME localTime;
::GetSystemTime(&sysTime);
::GetLocalTime(&localTime);
junliang0824 2010-08-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 chenlycly 的回复:]
用64位时间类型就可以啊:

C/C++ code

__time64_t curTime = ::time(NULL);

上面的是获取当前时间,减去你之前记录的时间就是时间间隔了,以秒位单位~
[/Quote]
以秒为单位,可不可以是小数的,我可能不只要精确到秒,要到毫秒
hongya6088 2010-08-11
  • 打赏
  • 举报
回复
自定义一个结构体不就可以了

typedef struct MyPoint
{
POINT point;//点的坐标
__time64_t curTime;//时间

}MyPoint;
dvlinker 2010-08-11
  • 打赏
  • 举报
回复
用64位时间类型就可以啊:

__time64_t curTime = ::time(NULL);

上面的是获取当前时间,减去你之前记录的时间就是时间间隔了,以秒位单位~
Eleven 2010-08-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 junliang0824 的回复:]
引用 1 楼 zjz800800 的回复:
CTime

CTime是什么,是一个类吗?具体怎么用,能给点代码启发下吗?感激不尽。
在线等。
[/Quote]
CTime::GetCurrentTime();参考MSDN
junliang0824 2010-08-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zjz800800 的回复:]
CTime
[/Quote]
CTime是什么,是一个类吗?具体怎么用,能给点代码启发下吗?感激不尽。
在线等。
junliang0824 2010-08-11
  • 打赏
  • 举报
回复
不知道要怎么实现,主要不明白什么数据类型可以存储时间。时间怎么获得,能计算吗 /
zjz800800 2010-08-11
  • 打赏
  • 举报
回复
CTime

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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