2011-07-05 37 views
2

我已經看過,但無法找到將日期轉換爲CTime的API,反之亦然。有這樣的事嗎?C++從打包日期轉換爲CTime

+2

,如果你告訴我們什麼是「包裝日期」你腦子裏的格式這將有助於(可能'CTime'也是一樣,尤其是如果你不是在討論MFC的東西)。 –

+0

我正在討論MFC CTime和DATE(http://msdn.microsoft.com/en-us/library/82ab7w69(vs.71).aspx)。 –

回答

0

可能有一個更短的方法,但通過文檔你可以在COleDateTime中存儲一個DATE,將它作爲一個SYSTEMTIME,然後用它來構建你的CTime。假設它可以表示爲CTime。

SYSTEMTIME st; 
DATE d(whatever); 
COleDateTime ole(d); 
d.GetAsSystemTime(st); 
CTime ct(st); 
+0

謝謝。將嘗試做相反的事情,因爲我實際上需要從CTime轉換爲DATE。 –

0

CTime包含許多用於各種時間格式的構造函數和轉換器;似乎很奇怪,DATE不包括在內。但支持_time64_t,並且僅在起始日期和範圍內與DATE不同。您可以輕鬆地從一個轉換到另一種,如果你有1970年1月1日,起始日爲DATE值:

DATE  jan1_1970 = ????; 
__time64_t t; 
DATE  d; 
double  seconds_per_day = 24.*60.*60.; 
t = (d - jan1_1970) * seconds_per_day; 
d = (t/seconds_per_day) + jan1_1970;