
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显示当前时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)