_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;
 }
Exemplo n.º 4
0
 int DateTime::GetSecond() const
 {
     struct tm tmTemp;
  
     if (GetStatus() == valid && TmFromOleDate(m_dt, tmTemp))
           return tmTemp.tm_sec;
     else
           return AFX_OLE_DATETIME_ERROR;
 }