使用COleDateTime類
1) 獲取當(dāng)前時(shí)間,。
CTime time;
time = CTime::GetCurrentTime();
2) 獲取時(shí)間元素。
int year = time.GetYear() ;
int month = time.GetMonth();
int day = time.GetDay();
int hour = time.GetHour();
int minute = time.GetMinute();
int second = time.GetSecond();
int DayOfWeek = time.GetDayOfWeek() ;
3) 獲取時(shí)間間隔,。
CTimeSpan timespan(0,0,1,0); // days,hours,minutes,seconds
timespan = CTime::GetCurrentTime() - time;
4) 把時(shí)間轉(zhuǎn)換為字符串,。
CString sDate,sTime,sElapsed Time ;
sDate = time.Format("%m/%d/%y"); //ex: 12/10/98
sTime = time.Format("%H:%M:%S"); //ex: 9:12:02
sElapsed Time = timespan.Format("%D:%H:%M:%S"); // %D is total elapsed days
5) 把字符串轉(zhuǎn)換為時(shí)間。
CString sDateTime;
int nYear, nMonth, nDate, nHour, nMin, nSec;
sscanf(sDateTime, "%d-%d-%d %d:%d:%d", &nYear, &nMonth, &nDate, &nHour, &nMin, &nSec);
CTime sTime(nYear, nMonth, nDate, nHour, nMin, nSec);
要想知道更多的時(shí)間格式,,參見MFC文檔中的strftime
使用COleDateTime類
1) 獲得一年中的某一天。
COleDateTime datetime;
datetime = COleDateTime::GetCurrentTime();
int DayOfYear = datetime.GetDayOfYear();
2) 從文本串中讀取時(shí)間。
COleDateTime datetime;
datetime.ParseDateTime("12:12:23 27 January 93");
3) 獲取時(shí)間間隔。
//比方計(jì)算日期差
COleDateTime begin_date(1970, 1, 1, 0, 0, 0);
COleDateTime end_date(1990, 1, 1, 0, 0, 0);
COleDateTimeSpan timeSpan; //計(jì)算時(shí)間差
timeSpan = end_date - begin_date;
long expi_date = timeSpan.GetDays();
說(shuō)明
■ CTime和COleDateTime具有幾乎同樣的功能,。然而,,COleDateTime允許用戶獲得一年中的某一天(創(chuàng)建Julian日期的一種好方法),,以及分析一個(gè)時(shí)間文本串,。
■ 與CTime相比,, COleDateTime的優(yōu)點(diǎn)在于它支持DWORD變量。COleDateTime使用的位數(shù)是雙浮點(diǎn)的兩倍,,既然CTime只是簡(jiǎn)單地計(jì)算從1970年1月1日之后經(jīng)過的秒數(shù),,所以到了2037年它將達(dá)到4294967295,,從而不能再使用。相反,COleDateTime是一個(gè)
浮點(diǎn)數(shù),,它表示是從1900年12月30號(hào)之后的天數(shù)(小時(shí)是天的小數(shù)部分),,幾千年之內(nèi)不會(huì)溢出,。