当我两次用GetLocalTime获得了当前时间后,要怎样才能算出两个时间的间隔?
我这样做的目的是:既要知道当前的时间,又要计算两个时间的间隔。如果有替换方法也可以。
我这样做的目的是:既要知道当前的时间,又要计算两个时间的间隔。如果有替换方法也可以。
解决方案 »
- 求高人指教,opengl程序
- 线程被意外挂起!?
- 菜单响应函数应该如何处理???
- 如何断开和起用本地连接(网络连接里的图标)
- 网络编程碰到的关于套接字的问题,请帮忙看看!
- 谁教我看看调试信息
- 关于ON_UPDATE_COMMAND_UI消息处理菜单时,右键快捷菜单和普通菜单有什么区别?
- ##############为什么我用SPI拦不到Google的搜索??###############
- 图形捕捉,超难问题!!!
- win32 API学习是多看书还是多做例子的好!过来人进来凯凯(送分题)
- 文档在改动后关闭时会弹出是否保存对话框,但是程序是怎样知道文档是新建的还是打开的……
- LINK : fatal error LNK1104: cannot open file "mfc42u.lib" 这是什么错误?
CTime t1( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999
CTime t2( 1999, 3, 20, 22, 15, 0 ); // 10:15PM March 20, 1999
CTimeSpan ts = t2 - t1; // Subtract 2 CTimes
ASSERT( ts.GetTotalSeconds() == 86400L );
ASSERT( ( t1 + ts ) == t2 ); // Add a CTimeSpan to a CTime.
ASSERT( ( t2 - ts ) == t1 ); // Subtract a CTimeSpan from a Ctime.
for( ; it3 != tempMessage1.end(),it4 != tempMessage2.end() ;it3++,it4++)
{
DWORD dwStart = GetTickCount();
for(;;)
{
if(SMSSend.lock())
{
if(g_SmsSend)
{
g_SmsSend = FALSE;
m_SendShotrMessage->SetstrTel( (*it3).c_str() ); m_SendShotrMessage->SetstrMessage((*it4).c_str(); m_SendShotrMessage->resume( );
::PostThreadMessage(m_SendShotrMessage->getId(),WM_SENDCMGS,0,0);
m_diverhasdo = true;
sendcouut ++; break;
}
}
else
{
break;
}
SMSSend.unlock();
Sleep(100);
if ( sendcouut == 1 || sendcouut == 0)
{
if( GetTickCount() - dwStart >= 6000)
{
m_diverhasdo = false;
MessageBox(NULL,"请检验短信发送设备是否接通!确定设备接通后请重新启动AlarmService服务。","AlarmService提示信息", 0 | 0X00200000L | MB_TOPMOST | MB_ICONEXCLAMATION );
goto loop;
}
}
}
代码的大致含义是:
在你要计算的时间的开始部分,用DWORD dwStart = GetTickCount();记录下当时的时间。然后运行你的代码,在你想要计算时间间隔的地方,用if( GetTickCount() - dwStart >= 6000) 再次得到时间,并判断条件!
祝你成功!!
COleDateTime ts1(Eyear, Emonth, Eday, Ehour, Eminute, Esecond);
COleDateTime ts2(Byear, Bmonth, Bday, Bhour, Bminute, Bsecond);
COleDateTime ts3 = ts1 - ts2; second = ts3.GetSecond();
FILETIME ft;
LONGLONG val;
}t1,t2;SYSTEMTIME st1,st2;
GetLocalTime(&st1);
...
GetLocalTime(st2);SystemTimeToFileTime(&st1, &t1.ft);
SystemTimeToFileTime(&st2, &t2.ft);LONGLONG secs=t1.val-t2.val;
unsigned t =timeGetTime();结束时
t=(timeGetTime()-t);这样,两次的时间差就保存在t中了
//..............................
//other code
//..............................
time1=GetTickCount()-time1;//end time
//time1就是时间差
t=(timeGetTime()-t);
DWORD g_dwLastPauseTime = 0; if((GetTickCount() - g_dwLastPauseTime)<800)
{
return;
}
else
{
g_dwLastPauseTime = GetTickCount();
}
unsigned t =timeGetTime();结束时
t=(timeGetTime()-t);这样,两次的时间差就保存在t中了
//some code performing
COleDateTime dtEnd = COleDateTime::GetCurrentTime();
COleDateTimeSpan dtResult = dtEnd - dtBegin;
CTime t2( 2003, 3, 20, 22, 15, 0 ); // 10:15PM March 20, 2003
CTimeSpan ts = t2 - t1; ts=1
LONGLONG secs=t2.val-t1.val;