VC++获得当前系统时间的几种方案

2012-02-13 23:07:12|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:C/C++, 操作系统|来源:唯设编程网

在C/C++编程时,经常需要对时间/日期进行处理,在实际项目中经常需要获取当前系统时间,本文总结了几种常用的获取系统时间的方法,包含了C语言获取系统时间的方法,C++获取系统时间的方法和MFC环境获取系统时间的方法,读者可以根据实际需要选用。

方案— :使用C语言库获取系统当前时间

#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;
}

本方案的不足:只能精确到秒级

方案二 :使用C语言库函数GetLocalTime获取系统当前时间

#include <stdio.h>
int main( void )
{
    SYSTEMTIME sys;
    GetLocalTime( &sys );
    printf( "%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d
"
        ,sys.wYear,sys.wMonth,sys.wDay
        ,sys.wHour,sys.wMinute,sys.wSecond,sys.wMilliseconds
        ,sys.wDayOfWeek); 
    return 0;
}

备注:本方案需要添加引用Windows API头文件的语句#include <windows.h>

方案三:使用C++的系统函数获取系统当前时间

#include<stdlib.h>
#include<iostream>
using namespace std;
void main(){
    system("time");
}

备注:该方法可以改变电脑的时间设定

方案4:C++环境使用ctime库函数获取当前系统时间

#include<iostream>
#include<ctime>
using namespace std;
int main()
{
    time_t now_time;
    now_time = time(NULL);
    cout<<now_time;
    return 0;
}

方案5:使用MFC的CTime类获取当前系统时间


CString CTestView::GetTime()
{
    CTime CurrentTime=CTime::GetCurrentTime();
    CString strTime;   
    strTime.Format("%d:%d:%d"
        ,CurrentTime.GetHour()
        ,CurrentTime.GetMinute()
        ,CurrentTime.GetSecond());
    return strTime;
}

方案6:使用GetTickCount


//获取程序运行时间
long t1=GetTickCount();//程序段开始前取得系统运行时间(ms)
Sleep(500);
long t2=GetTickCount();();//程序段结束后取得系统运行时间(ms)
str.Format("time:%dms",t2-t1);//前后之差即 程序运行时间
AfxMessageBox(str);
//获取系统运行时间
long t=GetTickCount();
CString str,str1;
str1.Format("系统已运行 %d时",t/3600000);
str=str1;
t%=3600000;
str1.Format("%d分",t/60000);
str+=str1;
t%=60000;
str1.Format("%d秒",t/1000);
str+=str1;
AfxMessageBox(str);
发表评论0条 】
网友评论(共?条评论)..
VC++获得当前系统时间的几种方案