【46】MFC入门到精通——MFC显示实时时间,获取系统当前时间GetCurrentTime()、获取本地时间GetLocalTime()
文章目录
- 1 MFC获取时间方法
- 方法一:获取系统当前时间GetCurrentTime()
- 方法二:获取本地时间GetLocalTime()
- 使用GetTickCount()获取程序运行时间
- 2 MFC显示实时时间 使用方法
- 2.1 获取时间
- 2.2 类向导 添加定时器函数 OnTimer
- 2.3 初始化 设置定时器
- 2.4 定时器函数 调用 获取时间函数
- 2.5 效果演示
1 MFC获取时间方法
方法一:获取系统当前时间GetCurrentTime()
//方法一,获取系统当前时间
int CSerialPortDlg::Current_Time()
{//方法一,获取系统当前时间CTime time;//实例一个时间对象CString strTime;//显示时间time = CTime::GetCurrentTime();//获取系统当前时间//strTime = time.Format(_T("%Y - %m - %d %H: %M : %S"));//将time对象中的时间信息(年,月,日,时,分,秒)存储到CString变量中进行显示strTime = time.Format(_T("当前时间 %H:%M:%S"));//显示SetDlgItemText(IDC_STATIC_CurrentTime, strTime);return 0;
}
方法二:获取本地时间GetLocalTime()
int CSerialPortDlg::Current_Time()
{//方法二,获取本地时间精确到毫秒 CString strTime;SYSTEMTIME lpsystime;GetLocalTime(&lpsystime);//strTime.Format(L"%d-%d-%d %d:%d:%d:%d", lpsystime.wYear, lpsystime.wMonth, lpsystime.wDay, lpsystime.wHour,lpsystime.wMinute, lpsystime.wSecond, lpsystime.wMilliseconds);strTime.Format(L"当前时间 %d:%d:%d", lpsystime.wHour,lpsystime.wMinute, lpsystime.wSecond);//显示SetDlgItemText(IDC_STATIC_CurrentTime, strTime);return 0;
}
使用GetTickCount()获取程序运行时间
long t1=GetTickCount();//程序段开始前取得系统运行时间(ms)
Sleep(500); long t2=GetTickCount();//程序段结束后取得系统运行时间(ms)
str.Format("time:%dms",t2-t1);//前后之差即 程序运行时间
AfxMessageBox(str);//获取系统运行时间
long t=GetTickCount();
CString str,str1;
str1.Format("系统已运行 %d时",t/3600000);
str=str1; t%=3600000;
str1.Format("%d分",t/60000);
str+=str1; t%=60000;
str1.Format("%d秒",t/1000);
str+=str1;
AfxMessageBox(str);
2 MFC显示实时时间 使用方法
2.1 获取时间
//方法一,获取系统当前时间
int CSerialPortDlg::Current_Time()
{//方法一,获取系统当前时间CTime time;//实例一个时间对象CString strTime;//显示时间time = CTime::GetCurrentTime();//获取系统当前时间//strTime = time.Format(_T("%Y - %m - %d %H: %M : %S"));//将time对象中的时间信息(年,月,日,时,分,秒)存储到CString变量中进行显示strTime = time.Format(_T("当前时间 %H:%M:%S"));//显示SetDlgItemText(IDC_STATIC_CurrentTime, strTime);return 0;
}
2.2 类向导 添加定时器函数 OnTimer
2.3 初始化 设置定时器
在OnInitDialog();
中添加代码
//显示当前时间Current_Time();//1秒触发一次的定时器 SetTimer(1, 1000, NULL);
2.4 定时器函数 调用 获取时间函数
void CSerialPortDlg::OnTimer(UINT_PTR nIDEvent)
{// TODO: 在此添加消息处理程序代码和/或调用默认值if (nIDEvent == 1) {Current_Time();}CDialogEx::OnTimer(nIDEvent);
}
2.5 效果演示
参考链接 :
MFC–在窗口状态栏设置时间显示
MFC中设置静态文本框的时间
MFC获取时间的几种方法