日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

VC++獲得當(dāng)前系統(tǒng)時(shí)間的幾種方案 zz

 浮 生 2009-09-09
//方案— 優(yōu)點(diǎn):僅使用C標(biāo)準(zhǔn)庫;缺點(diǎn):只能精確到秒級
#include <time.h>
#include <stdio.h>
int main( void )
{
   time_t t = time( 0 );
    char tmp[64];
    strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",
localtime(&t) );
    puts( tmp );
    return 0;
}
 
//方案二 優(yōu)點(diǎn):能精確到毫秒級;缺點(diǎn):使用了windows API
#include <windows.h>
#include <stdio.h>
int main( void )
{
        SYSTEMTIME sys;
        GetLocalTime( &sys );
        printf( "%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d\n"
                ,sys.wYear,sys.wMonth,sys.wDay
                ,sys.wHour,sys.wMinute,sys.wSecond,sys.wMilliseconds
                ,sys.wDayOfWeek);
        return 0;
}
 
//方案三,優(yōu)點(diǎn):利用系統(tǒng)函數(shù)
#include<stdlib.h>
#include<iostream>
using namespace std;
void main(){
    system("time");
}
可以改變電腦的時(shí)間設(shè)定
 
方案4:
#include<iostream>
#include<ctime>
using namespace std;
int main()
{
time_t now_time;
now_time = time(NULL);
cout<<now_time;
return 0;
}
另一:_strdate(tempstr);
另二:
CString CTestView::GetTime()
{
   CTime CurrentTime=CTime::GetCurrentTime();
   CString strTime;   
   strTime.Format("%d:%d:%d",CurrentTime.GetHour(),  CurrentTime.GetMinute(),CurrentTime.GetSecond());
   return strTime;
} language=VBScript>call ReplaceSubjectHTML_emote(592915)

 
精確獲得時(shí)間
   Win32   API函數(shù)庫中已經(jīng)為用戶提供了一組用于高精度計(jì)時(shí)的底層函數(shù),如果用戶使用得當(dāng),計(jì)時(shí)精度可到1ms。這個(gè)計(jì)時(shí)精度,對于一般的實(shí)時(shí)系統(tǒng)控制完全可以滿足要求。現(xiàn)將由BCB提供的重新封裝后的一組與時(shí)間相關(guān)的主要接口函數(shù)(函數(shù)名、參數(shù)、功能與Win32API基本相同)說明如下:   
1.DWORD   timeGetTime(void)     
 返回從Windows啟動(dòng)開始經(jīng)過的毫秒數(shù)。最大值為2的32次方,約49.71天。   
2.MMRESULT timeSetEvent(UINT   uDelay,UINT   uResolution,
                        LPTIMECALLBACK lpTimeProc, DWORD dwUser, UINT fuEvent)     
  該函數(shù)設(shè)置一個(gè)定時(shí)回調(diào)事件,此事件可以是一個(gè)一次性事件或周期性事件。事件一旦被激活,便調(diào)用指定的回調(diào)函數(shù),成功后返回事件的標(biāo)識(shí)代碼,否則返回NULL.參數(shù)說明如下:   
    uDelay:以毫秒制定事件的周期。   
    UResolution:以毫秒指定延時(shí)的精度,數(shù)值越小定時(shí)器事件分辯率越高。缺省值為1ms.     
    LpTimeProc:指向一個(gè)回調(diào)函數(shù)。   
    DwUser:存放用戶提供的回調(diào)數(shù)據(jù)。   
    FuEvent:指定定時(shí)器事件類型:TIME_ONESHOT:uDelay毫秒后只產(chǎn)生一次事件。   
    TIME_PERIODIC: 每隔uDelay毫秒周期性地產(chǎn)生事件。   

3.MMRESULT   timeKillEvent(UINT   uTimerID)     
  該函數(shù)取消一個(gè)指定的定時(shí)器回調(diào)事件。uTimerID標(biāo)識(shí)要取消的事件(由timeSetEvent函數(shù)返回的標(biāo)識(shí)符)。如果定時(shí)器時(shí)間不存在則返回MMSYSERR_INVALPARAM。   
  void CALLBACK TimeProc(UINT uID,UINT uMsg,DWORD dwUser,DWORD dw1,DWORD dw2);     
   該函數(shù)是一個(gè)應(yīng)用程序定義的回調(diào)函數(shù),出現(xiàn)定時(shí)器事件時(shí)該函數(shù)被調(diào)用。TimeProc是應(yīng)用程序定義的函數(shù)名的占位符。
   使用該函數(shù)時(shí)要注意的是,它只能調(diào)用以下有限的幾組API函數(shù):
PostMessage,timeGetSystemTime, timeGetTime, timeSetEvent, timeKillEvent, 
midiOutShortMsg, midiOutLongMsg, OutputDebugString。同時(shí)也不要使用完成時(shí)間很長的API函數(shù),程序盡可能簡短。   
   使用以上一組函數(shù)就可以完成毫秒級精度的計(jì)時(shí)和控制(在BCB使用時(shí)要將頭文件mmsystem.h加到程序中)。由于將定時(shí)控制精確到幾毫秒,定時(shí)器事件將占用大量的CPU時(shí)間和系統(tǒng)資源,所以在滿足控制要求的前提下,應(yīng)盡量將參數(shù)uResolution的數(shù)值增大。而且定時(shí)器實(shí)時(shí)控制功能完成后要盡快釋放。   

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多