如何在VC中加減日期及 CTime COleDateTime的常用操作和比較

如何在VC中加減日期及 CTime COleDateTime的常用操作和比較 [轉貼 2008-10-31 15:51:28]   
我頂 字號:

如何在VC中加減日期
 使用CTime類,如:
    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.


CTime COleDateTime的常用操作和比較
1) 獲取當前時間。
CTime time;
time = CTime::GetCurrentTime();
2) 獲取時間元素。
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) 獲取時間間隔。
CTimeSpan timespan(0,0,1,0); // days,hours,minutes,seconds
timespan = CTime::GetCurrentTime() - time;
4) 把時間轉換爲字符串。
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
要想知道更多的時間格式,參見M F C文檔中的strftime。
使用COleDateTime類
1) 獲得一年中的某一天。
COleDate Time datetime;
datetime = COleDateTime::GetCurrentTime();
int DayOfYear = datetime.GetDayOfYear();
2) 從文本串中讀取時間。
COleDate Time datetime;
datetime.ParseDateTime("12:12:23 27 January 93");
說明。

CTime和COleDateTime具有幾乎同樣的功能。然而, COleDateTime允許用戶獲得一年
中的某一天(創建Julian日期的一種好方法),以及分析一個時間文本串。
與CTime相比, COleDateTime的優點在於它支持DWORD變量。COleDateTime使用的
位數是雙浮點的兩倍,既然CTime只是簡單地計算從1970年1月1日之後經過的秒數,
所以到了2 0 3 7年它將達到4 2 9 4 9 6 7 2 9 5,從而不能再使用。相反,
COleDateTime是一個浮點數,它表示是從1 9 0 0年1 2月3 0號之後的天數(小時是天的小數部分),幾千年之內不會溢出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章