我想從COleDateTime對象中獲取年份和月份,並且希望它儘可能快。我有2個選項;從COleDateTime直接獲取年份和月份或先轉換爲SYSTEMTIME會更快嗎?
COleDateTime my_date_time;
int year = my_date_time.GetYear();
int month = my_date_time.GetMonth();
或
COleDateTime my_date_time;
SYSTEMTIME mydt_as_systemtime;
my_date_time.GetAsSystemTime(mydt_as_systemtime);
int year = mydt_as_systemtime.wYear;
int month = mydt_as_systemtime.wMonth;
的問題是,這將是更快?
COleDateTime
它存儲的內部日期表示爲DATE
的typedef,所以當你打電話GetYear()
和GetMonth()
它必須計算這些各一次。在SYSTEMTIME
的情況下,wYear
和wMonth
的值存儲爲DWORD
s,因此它只是檢索值的一種情況,但在將COleDateTime
轉換爲SYSTEMTIME
時存在開銷。
謝謝,
星級
你是否在速度真正重要的環境中這樣做?如果是這樣,請對照並回來告訴我們結果。 –
@MarkRansom是的,速度在代碼上下文中很重要。如果我在這裏沒有得到任何明確的解釋性答案,那麼我最終會以此爲基準。我只是希望有經驗的用戶可能知道,從COleDateTime到'SYSTEMTIME'算法的轉換比'DATE'到年份,然後是'DATE'到月份或其他方式更有效。 – Steztric
老實說,你可以比任何人在這裏回覆更快。 –