C++获取系统时间和控制

C++获取系统时间和控制,第1张

GetTickCount()这个API函数的功能是实现从 *** 作系统启动到现在所经过的毫秒数,它的返回值是DWORD类型。

另外MFC中CTIME类中有GetCurrentTime函数 功能是获取系统当前时间

如果你想用00:00:00这种格式输出系统启动了多长时间 可以用下面的代码

CString s;

DWORD k=::GetTickCount(); //获取毫秒级数目

int hm=k/3600000; //hm为小时数

int ms=(k-3600000hm)/60000; //ms为分钟数

int se=(k-3600000hm-60000ms)/1000; //se为秒数(除以1000是因为k精确到毫秒)

sFormat("%d:%d:%d",hm,ms,se); //输出时、分、秒

如果是想格式输出系统当前时间 用Format函数

则:

CTIME t;

CString s = tFormat( "%H, %M %S" );

置于你说的用空格键控制时间 似乎没听过 貌似这样应该要用消息响应做吧

响应空格消息 暂停取时 在接收响应时又开始取时

zhouwei23cn(23:32:46):

怎么回答

青花信守承诺(23:32:53):

GetTickCount()这个API函数的功能是实现从 *** 作系统启动到现在所经过的毫秒数,它的返回值是DWORD类型。

另外MFC中CTIME类中有GetCurrentTime函数 功能是获取系统当前时间

如果你想用00:00:00这种格式输出系统启动了多长时间 可以用下面的代码

CString s;

DWORD k=::GetTickCount(); //获取毫秒级数目

int hm=k/3600000; //hm为小时数

int ms=(k-3600000hm)/60000; //ms为分钟数

int se=(k-3600000hm-60000ms)/1000; //se为秒数(除以1000是因为k精确到毫秒)

sFormat("%d:%d:%d",hm,ms,se); //输出时、分、秒

如果是想格式输出系统当前时间 用Format函数

则:

CTIME t;

CString s = tFormat( "%H, %M %S" );

置于你说的用空格键控制时间 似乎没听过 貌似这样应该要用消息响应做吧

响应空格消息 暂停取时 在接收响应时又开始取时

c++语言中可调用time()函数获得一个时间值,该时间值是从1970年1月1日(MFC是1899年12月31日)0时0分0秒,到现在的的秒数,数据类型为long。可以调用ctime()函数进行时间转换输出。 如果进行停车收费计算和显示,可如下 *** 作: 定义两个long类型

首先用GetLocalTime获取当前时间,然后获取到年月日时分秒之后,新建一个CTime的变量,在Class Wizard中增加这个控件的控件变量,然后就可以设置了,如果还是不懂,可以加我QQ(2591842742)问

使用time函数

C语言获取当前系统时间的几种方式:

1 使用time_t time( time_t timer ) 精确到秒

2 使用clock_t clock() 得到的是CPU时间精确到1/CLOCKS_PER_SEC秒

3 计算时间差使用double difftime( time_t timer1, time_t timer0 )

4 使用DWORD GetTickCount() 精确到毫秒

5 如果使用MFC的CTime类,可以用CTime::GetCurrentTime() 精确到秒

6 要获取高精度时间,可以使用

BOOL QueryPerformanceFrequency(LARGE_INTEGER lpFrequency)

容易理解的方法:

CTime类用于获得系统的时间,系统的时间是一个64位的整数,他记录从1970年1月1日到当前时间的秒数,获得该数值的方法是

CTime t_now = CTime::GetCurrentTime();

time_t t_sec_now = t_nowGetTime();

如果你需要从这个64位整数重新构造CTime对象,只需要调用其构造函数即可:

CTime some_time(t_sec_now);

这样你就可以通过

some_timeGetDay();

some_timeGetHour();

等一系列CTime的函数获得需要的信息。

现在你需要保存到文件里去,调用CFile类即可

CFile file;

if (fileOpen(_T("somefiledat"), CFile::modeCreate|CFile::modeWrite, NULL))

{

fileWrite(&t_sec_now, sizeof(t_sec_now)); //写入二进制文件

fileClose();

}

读取就反过来,先打开文件,然后调用CFile::Read读取。

---------------------------------------------

若你理解序列化等内容,可以直接调用CTime的序列化功能保存CTime对象,读取的时候直接生成CTime对象即可。

CTime t_now = CTime::GetCurrentTime();

CFile file(_T("timedat"), CFile::modeCreate|CFile::modeWrite);

CArchive ar(&file, CArchive::store);

t_nowSerialize64(ar);

arClose();

fileClose();

读取的时候以读的方式打开文件,CArchive以CArchive::load创建对象即可读取CTime对象。

以上代码省略了处理文件异常的内容,最好利用try catch快和CFileException或者CArchiveException来处理文件打开或者读写可能产生的一场。

以上就是关于C++获取系统时间和控制全部的内容,包括:C++获取系统时间和控制、如何使用strftime得到毫秒数、MFC如何用Data Time picker显示当前时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9794038.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存