void CTimeOperateDlg::OnBnClickedBtnTimezone()
{
// TODO: 在此添加控件通知处理程序代码
TIME_ZONE_INFORMATION timeZoneInfo;
memset(&timeZoneInfo, NULL, sizeof(timeZoneInfo));
DWORD dwRet = ::GetTimeZoneInformation(&timeZoneInfo);
if (dwRet==TIME_ZONE_ID_INVALID)
{
MessageBox(_T("执行函数失败"));
return;
}
CString strZoneType = _T("");
CString strZoneTime = _T("");
switch (dwRet)
{
case TIME_ZONE_ID_UNKNOWN:
strZoneType = _T("未知时区");
break;
case TIME_ZONE_ID_STANDARD:
strZoneType = _T("标准时间");
break;
case TIME_ZONE_ID_DAYLIGHT:
strZoneType = _T("夏令时间");
break;
default:
break;
}
if (timeZoneInfo.Bias<0) //东区
{
int nZoneTime = -timeZoneInfo.Bias / 60;
strZoneTime.Format(_T("Standard Time(GMT+%02d:%02d)"), nZoneTime, nZoneTime);
}
else if (timeZoneInfo.Bias>0)//西区
{
int nZoneTime = timeZoneInfo.Bias / 60;
strZoneTime.Format(_T("Standard Time(GMT%02d:%02d)"), nZoneTime, nZoneTime);
}
else if (timeZoneInfo.Bias == 0)//标准
{
strZoneTime.Format(_T("Standard Time(GMT)"));
}
GetDlgItem(IDC_STATIC_ZONETYPE)->SetWindowText(strZoneType);
GetDlgItem(IDC_STATIC_TIMEZONE)->SetWindowText(strZoneTime);
}
void CTimeOperateDlg::OnBnClickedBtnGmttime()
{
// TODO: 在此添加控件通知处理程序代码
if (!m_bGMTTime)
{
SetTimer(1, 1000, NULL);
m_bGMTTime = true;
GetDlgItem(IDC_BTN_GMTTIME)->SetWindowText(_T("暂停"));
}
else
{
KillTimer(1);
m_bGMTTime = false;
GetDlgItem(IDC_BTN_GMTTIME)->SetWindowText(_T("获取格林威治时间"));
}
}
void CTimeOperateDlg::OnBnClickedBtnLocaltime()
{
// TODO: 在此添加控件通知处理程序代码
if (!m_bLocalTime)
{
SetTimer(2, 1000, NULL);
m_bLocalTime = true;
GetDlgItem(IDC_BTN_GMTTIME)->SetWindowText(_T("暂停"));
}
else
{
KillTimer(2);
m_bLocalTime = false;
GetDlgItem(IDC_BTN_GMTTIME)->SetWindowText(_T("获取本地时间"));
}
}
void CTimeOperateDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (nIDEvent==1)
{
if (m_bGMTTime)
{
SYSTEMTIME systemTime;
memset(&systemTime, NULL, sizeof(SYSTEMTIME));
::GetSystemTime(&systemTime);
CString strGMTTime = _T("");
strGMTTime.Format(_T("%4d-%02d-%02d %02d:%02d:%02d"), systemTime.wYear,
systemTime.wMonth, systemTime.wDay, systemTime.wHour, systemTime.wMinute, systemTime.wSecond);
GetDlgItem(IDC_STATIC_GMTTIME)->SetWindowText(strGMTTime);
}
}
else if (nIDEvent==2)
{
if (m_bLocalTime)
{
SYSTEMTIME systemTime;
memset(&systemTime, NULL, sizeof(SYSTEMTIME));
::GetLocalTime(&systemTime);
CString strLocalTime = _T("");
strLocalTime.Format(_T("%4d-%02d-%02d %02d:%02d:%02d"), systemTime.wYear,
systemTime.wMonth, systemTime.wDay, systemTime.wHour, systemTime.wMinute, systemTime.wSecond);
GetDlgItem(IDC_STATIC_LOCALTIME)->SetWindowText(strLocalTime);
}
}
CDialogEx::OnTimer(nIDEvent);
}
c++ 通过API获取系统时间
猜你喜欢
转载自blog.csdn.net/dxm809/article/details/113882820
今日推荐
周排行