_bstr_t DateTimeSpan::Format(LPCTSTR pFormat) const { _bstr_t strSpan; struct tm tmTemp; // If null, return empty string if (GetStatus() == null) return strSpan; // If invalid, return DateTimeSpan resource string if (GetStatus() == invalid || !TmFromOleDate(span_, tmTemp)) { //VERIFY(strSpan.LoadString(AFX_IDS_INVALID_DATETIMESPAN)); return strSpan; } // Convert tm from afx internal format to standard format TmConvertToStandardFormat(tmTemp); // Fill in the buffer, disregard return value as it's not necessary LPTSTR lpszTemp = new TCHAR[MAX_TIME_BUFFER_SIZE]; _tcsftime(lpszTemp, MAX_TIME_BUFFER_SIZE, pFormat, &tmTemp); strSpan=lpszTemp; delete [] lpszTemp; return strSpan; }
unsigned int DateTime::ToInt() const { struct tm tmTemp; if (GetStatus() == valid && TmFromOleDate(dt_, tmTemp)) { tmTemp.tm_year -= 1900; tmTemp.tm_mon -= 1; time_t rawTime = _mkgmtime64(&tmTemp); int err = GetLastError(); if (rawTime == -1) return 0; return (unsigned int) rawTime; } else { ErrorManager::Instance()->ReportError(ErrorManager::High, 5160, "DateTime::ToInt()", "Tried to convert non-date to integral representation."); return 0; } }
int DateTime::GetDayOfYear() const { struct tm tmTemp; if (GetStatus() == valid && TmFromOleDate(dt_, tmTemp)) return tmTemp.tm_yday; else return AFX_OLE_DATETIME_ERROR; }
int DateTime::GetSecond() const { struct tm tmTemp; if (GetStatus() == valid && TmFromOleDate(m_dt, tmTemp)) return tmTemp.tm_sec; else return AFX_OLE_DATETIME_ERROR; }