SYSTTEMTIME、time_t

举报
清雨小竹 发表于 2022/09/24 23:35:32 2022/09/24
【摘要】   ///time_t MySystemTimeToTimet(SYSTEMTIME st ){ FILETIME ft; SystemTimeToFileTime( &st, &ft ); LONGLONG nLL; ULARGE_INTEGER...

 

///
time_t MySystemTimeToTimet(SYSTEMTIME st )
{
 FILETIME ft;
 SystemTimeToFileTime( &st, &ft );
 LONGLONG nLL;
 ULARGE_INTEGER ui;
 ui.LowPart = ft.dwLowDateTime;
 ui.HighPart = ft.dwHighDateTime;
 nLL = (ft.dwHighDateTime << 32) + ft.dwLowDateTime;
 time_t pt = (long)((LONGLONG)(ui.QuadPart - 116444736000000000) / 10000000);
 return pt;
}
//
SYSTEMTIME MyTimetToSystemTime(time_t t)
{
 FILETIME ft;
 SYSTEMTIME pst;
 LONGLONG nLL = Int32x32To64(t, 10000000) + 116444736000000000;
 ft.dwLowDateTime = (DWORD)nLL;
 ft.dwHighDateTime = (DWORD)(nLL >> 32);
 FileTimeToSystemTime(&ft, &pst);
 return pst;
}
//
void ChangeDay(SYSTEMTIME& sysTime,int day)
{
 FILETIME ft={0};
 SystemTimeToFileTime(&sysTime, &ft);

 ULONGLONG qwResult;
 // Copy the time into a quadword.
 qwResult = (((ULONGLONG) ft.dwHighDateTime) << 32) + ft.dwLowDateTime;
 // minus 2 hours.
 qwResult += day * 86400 * (ULONGLONG)10000000;
 // Copy the result back into the FILETIME structure.
 ft.dwLowDateTime  = (DWORD) (qwResult & 0xFFFFFFFF );
 ft.dwHighDateTime = (DWORD) (qwResult >> 32 );

 FileTimeToSystemTime(&ft, &sysTime);
}

/

SYSTEMTIME* CStringToSystemTime(CString str)
{
 int         nYear   = 0;
 int         nMonth  = 0;
 int         nDay    = 0;
 int         nHour   = 0;
 int         nSecond = 0;
 int         nMinute = 0;
 SYSTEMTIME time;
 _stscanf(str, _T("%d-%d-%d"), &nYear, &nMonth, &nDay);
 time.wYear   = nYear;
 time.wMonth  = nMonth;
 time.wDay    = nDay;
 time.wHour   = nHour;
 time.wSecond = nSecond;
 time.wMinute = nMinute;
 return &time;
}

 

 

void SetTimeEdit(CDateTimeCtrl *ctrl,CString str)设置控件时间
{
 ctrl->UpdateData(TRUE);
 LPSYSTEMTIME time=CStringToSystemTime(str);
 CTime ctime(2011,11,11,time->wHour,time->wMinute,time->wSecond);
 ctrl->SetTime(&ctime);
 ctrl->SetFormat(_T("HH:mm:ss"));
}

 

void CStringToSystemTime(CString str,SYSTEMTIME &time,BOOL isYear)
{//str 08:00:00

  COleDateTime m_CurDate;
  m_CurDate.ParseDateTime(str,0);
  m_CurDate.GetAsSystemTime(time);

}


文章来源: zzzili.blog.csdn.net,作者:清雨小竹,版权归原作者所有,如需转载,请联系作者。

原文链接:zzzili.blog.csdn.net/article/details/8265390

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。