程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> VC++ 獲得體系時光的辦法匯總

VC++ 獲得體系時光的辦法匯總

編輯:關於C++

VC++ 獲得體系時光的辦法匯總。本站提示廣大學習愛好者:(VC++ 獲得體系時光的辦法匯總)文章只能為提供參考,不一定能成為您想要的結果。以下是VC++ 獲得體系時光的辦法匯總正文


1.應用CTime類(獲得體系以後時光,准確到秒)

CString str;
//獲得體系時光
CTime tm;
tm=CTime::GetCurrentTime();//獲得體系日期
str=tm.Format("如今時光是%Y年%m月%d日 %X");
MessageBox(str,NULL,MB_OK);

a,從CTimet中提取年代日時分秒

CTime t = CTime::GetCurrentTime();
 int d=t.GetDay(); //取得幾號
 int y=t.GetYear(); //獲得年份
 int m=t.GetMonth(); //獲得以後月份
 int h=t.GetHour(); //獲得以後為幾時
 int mm=t.GetMinute(); //獲得分鐘
 int s=t.GetSecond(); //獲得秒
 int w=t.GetDayOfWeek(); //獲得禮拜幾,留意1為禮拜天,7為禮拜六

b,盤算兩段時光的差值,可使用CTimeSpan類,詳細應用辦法以下:

CTime t1( 1999, 3, 19, 22, 15, 0 );
CTime t = CTime::GetCurrentTime();
CTimeSpan span=t-t1; //盤算以後體系時光與時光t1的距離
int iDay=span.GetDays(); //獲得這段時光距離共有若干天
int iHour=span.GetTotalHours(); //獲得總共有若干小時
int iMin=span.GetTotalMinutes();//獲得總共有若干分鐘
int iSec=span.GetTotalSeconds();//獲得總共有若干秒

c,取得以後日期和時光,並可以轉化為CString

CTime tm=CTime::GetCurrentTime(); 
CString str=tm.Format("%Y-%m-%d");//顯示年代日

2.應用GetLocalTime:Windows API 函數,獲得本地確當前體系日期和時光 (准確到毫秒)
 此函數會把獲得的體系時光信息存儲到SYSTEMTIME構造體裡邊

typedef struct _SYSTEMTIME
{
WORD wYear;//年
WORD wMonth;//月
WORD wDayOfWeek;//禮拜:0為禮拜日,1為禮拜一,2為禮拜二……
WORD wDay;//日
WORD wHour;//時
WORD wMinute;//分
WORD wSecond;//秒
WORD wMilliseconds;//毫秒
}SYSTEMTIME,*PSYSTEMTIME;

例:

SYSTEMTIME st;
CString strDate,strTime;
GetLocalTime(&st);
strDate.Format("%4d-%2d-%2d",st.wYear,st.wMonth,st.wDay);
strTime.Format("%2d:%2d:%2d",st.wHour,st.wMinute,st.wSecond) ;
AfxMessageBox(strDate);
AfxMessageBox(strTime);

3.應用GetTickCount:從操作體系啟動到如今所經由(elapsed)的毫秒數,它的前往值是DWORD。(准確到毫秒)

//獲得法式運轉時光
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);

4.應用time_t time( time_t * timer ) :   僅應用C尺度庫(准確到秒)
獲得從尺度計時點(普通是1970年1月1日午夜)到以後時光的秒數
盤算時光差:double difftime( time_t timer1, time_t timer0)
struct tm *localtime(const time_t *timer);  獲得本地時光,localtime獲得的成果由構造tm前往
前往的字符串可以依以下的格局而定:

%a 禮拜幾的縮寫。Eg:Tue
%A 禮拜幾的全名。 Eg: Tuesday
%b 月份稱號的縮寫。
%B 月份稱號的全名。
%c 當地端日期時光較佳表現字符串。
%d 用數字表現本月的第幾天 (規模為 00 至 31)。日期
%H 用 24 小時制數字表現小時數 (規模為 00 至 23)。
%I 用 12 小時制數字表現小時數 (規模為 01 至 12)。
%j 以數字表現昔時度的第幾天 (規模為 001 至 366)。
%m 月份的數字 (規模由 1 至 12)。
%M 分鐘。
%p 以 ''AM'' 或 ''PM'' 表現當地端時光。
%S 秒數。
%U 數字表現為今年度的第幾周,第一個禮拜由第一個周日開端。
%W 數字表現為今年度的第幾周,第一個禮拜由第一個周一開端。
%w 用數字表現本周的第幾天 ( 0 為周日)。
%x 不含時光的日期表現法。
%X 不含日期的時光表現法。 Eg: 15:26:30
%y 二位數字表現年份 (規模由 00 至 99)。
%Y 完全的年份數字表現,即四位數。 Eg:2008
%Z(%z) 時區或稱號縮寫。Eg:中國尺度時光
%% % 字符。

以上所述就是本文的全體內容了,願望年夜家可以或許愛好。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved