Time Format

CString TimeSpan2HHMMSS(COleDateTime t0, COleDateTime t1)
{
 long sec = (long)((t1 - t0) * ONEDAY + 0.5);
 return Long2HHMMSS(sec);
}
CString Long2HHMMSS(long sec, bool b4Excel/* = false*/)
{
//ZWF 20141006 add b4Excel for making "'" string for export to WorksheetPtr sheet.
//the problem was: when the time > 24h, it was changed to Y/M/D H:M:S, and there is no a way to set WorksheetPtr cell format
//If we can find a way to set WorksheetPtr cell format to "TEXT", the this function can go back to remove b4Excel

 if (sec < 0) 
    sec = 0;
 long h,m;
 CString H, M, S;
 h = sec / 3600;
 sec -= h * 3600;
 m = sec / 60;
 sec -= m * 60;
 H.Format(_T("%d"), h);
 M.Format(_T("%02d"), m);
 S.Format(_T("%02d"), sec);
 if (b4Excel && h > 24)
  return "'" + H + ":" + M + ":" + S;
 else 
  return H + ":" + M + ":" + S;
}
 long HHMMSS2Long(CString strTime)
{
 long lSeconds = 0;
 strTime.Trim();
 if (strTime.Left(1) == "'") 
    strTime = strTime.Mid(1);
 while(true)
 {
  lSeconds *= 60;
  int nPos = strTime.Find(':');
  CString str;
  if(nPos > 0)
  {
   str = strTime.Left(nPos);
   strTime = strTime.Mid(nPos + 1);
  }
  else
   str = strTime;
  lSeconds += _ttoi(str);
  if(nPos <= 0) 
   break;
 }

 return lSeconds;
}

你可能感兴趣的:(Time Format)