文章目录
- [1 MFC获取时间方法](#1 MFC获取时间方法)
- [2 MFC显示实时时间 使用方法](#2 MFC显示实时时间 使用方法)
-
- [2.1 获取时间](#2.1 获取时间)
- [2.2 类向导 添加定时器函数 OnTimer](#2.2 类向导 添加定时器函数 OnTimer)
- [2.3 初始化 设置定时器](#2.3 初始化 设置定时器)
- [2.4 定时器函数 调用 获取时间函数](#2.4 定时器函数 调用 获取时间函数)
- [2.5 效果演示](#2.5 效果演示)
1 MFC获取时间方法
方法一:获取系统当前时间GetCurrentTime()
cpp
//方法一,获取系统当前时间
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()
cpp
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()获取程序运行时间
cpp
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 获取时间
cpp
//方法一,获取系统当前时间
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();
中添加代码
cpp
//显示当前时间
Current_Time();
//1秒触发一次的定时器
SetTimer(1, 1000, NULL);

2.4 定时器函数 调用 获取时间函数
cpp
void CSerialPortDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (nIDEvent == 1) {
Current_Time();
}
CDialogEx::OnTimer(nIDEvent);
}
2.5 效果演示

参考链接 :