我首先取了本机时间:
CTime t = CTime::GetCurrentTime();
char szTime[14];
sprintf(szTime,"%04d%02d%02d%02d%02d%02d",t.GetYear(),t.GetMonth(),t.GetDay(),t.GetHour(),t.GetMinute(),t.GetSecond());然后又从服务器得到时间:
放在char szTimeDate[14];两个时间格式与位数都一样,现在我想求这两个时间的时间差,求得的结果以毫秒为单位,不知道应该怎么写,请高手们详细指点,我是新手!!
CTime t = CTime::GetCurrentTime();
char szTime[14];
sprintf(szTime,"%04d%02d%02d%02d%02d%02d",t.GetYear(),t.GetMonth(),t.GetDay(),t.GetHour(),t.GetMinute(),t.GetSecond());然后又从服务器得到时间:
放在char szTimeDate[14];两个时间格式与位数都一样,现在我想求这两个时间的时间差,求得的结果以毫秒为单位,不知道应该怎么写,请高手们详细指点,我是新手!!
你可以使用COleDataTime的ParseDateTime, 然后两个相减,得到COleDateTimeSpan
但前提是你要把你的字符串转成比较标准的形式, 比如
"2007-08-08 15:40:00"这个没啥好说的,就是一些字符串操作
试试QueryPerformanceFrequency()
char szTimeDate[14];
这两个变量里面放着两个例如“20070808162406”和“20070706052516”两个时间,我就是想得到这两个时间的时间差,单位秒或者毫秒都可以,会的高手请详细写出来,谢谢!!
CookTime(TCHAR * tszDest, const TCHAR * tszSrc)
{
tszDest[4] = _T('-');
tszDest[7] = _T('-');
tszDest[10] = _T(' ');
tszDest[13] = _T(':');
tszDest[16] = _T(':'); for (long i = 0; i < 20; ++i)
{
if (i == 4 ||
i == 7 ||
i == 10 ||
i == 13 ||
i == 16)
{
continue;
}
tszDest[i] = *tszSrc++;
}}__int64
CalcSeconds(TCHAR * pLocal, TCHAR * pSys)
{
COleDateTime tmLocal, tmSys;
TCHAR tszCookTime[32] = {0}; CookTime(tszCookTime, pLocal);
tmLocal.ParseDateTime(tszCookTime);
CookTime(tszCookTime, pSys);
tmSys.ParseDateTime(tszCookTime); COleDateTimeSpan tmSpan = tmSys - tmLocal;
return (__int64)tmSpan.GetTotalSeconds();
}刚写的,测试通过