Previous topicNext topic
Help > XEngine_BaseLib > XEngine_BaseLib > BaseLib_Time >
BaseLib_TimeSpan_GetForStr

函数

BaseLib_TimeSpan_GetForStr

功能

通过字符串时间获取时间差

语法

BOOL BaseLib_TimeSpan_GetForStr(LPCSTR lpszTimeStart, LPCSTR lpszTimeEnd, __int64x *pInt_Timer, int nType = 0, BOOL bChange = FALSE)

参数

 参数.一:lpszTimeStart
  In/Out:In
  类型:常量字符指针
  可空:N
  意思:开始时间
 参数.二:lpszTimeEnd
  In/Out:In
  类型:常量字符指针
  可空:N
  意思:结束时间
 参数.三:pInt_Time
  In/Out:Out
  类型:整数型指针
  可空:N
  意思:输出时间差值
 参数.四:nType
  In/Out:In
  类型:整数型
  可空:Y
  意思:获取结果值类型,0:天数 1:小时 2:分钟 3:秒钟
 参数.五:bChange
  In/Out:In
  类型:逻辑型
  可空:Y
  意思:是否支持交换计算,如果为真,那么将取最大的时间来减去最小时间,而不关心开始和结束

返回值

类型:逻辑型
意思:是否成功

备注

参数二只有天数,小时,分钟和秒才生效,其他值无效,下面的函数一样.

示例

void TimeSpanTest()
{
    __int64x nDayTTime = 0;
    __int64x nHourTTime = 0;
    LPCTSTR lpszStartTime = _T("2019-11-01 12:31:10");
    LPCTSTR lpszEndTime = _T("2020-10-02 12:31:10");
    XENGINE_LIBTIMER st_LibTimer;
    memset(&st_LibTimer, '\0', sizeof(XENGINE_LIBTIMER));

    BaseLib_OperatorTimeSpan_GetForStr(lpszStartTime, lpszEndTime, &nDayTTime, 0);
    BaseLib_OperatorTimeSpan_GetForStr(lpszStartTime, lpszEndTime, &nHourTTime, 1);
    printf(_T("\n跨了:%lld天 %lld小时\n"), nDayTTime, nHourTTime);

    BaseLib_OperatorTimeSpan_CalForStr(lpszStartTime, lpszEndTime, &st_LibTimer, TRUE);
    printf(_T("%d/%d/%d-%d:%d:%d\n"), st_LibTimer.wYear, st_LibTimer.wMonth, st_LibTimer.wDay, st_LibTimer.wHour, st_LibTimer.wMinute, st_LibTimer.wSecond);

    BaseLib_OperatorTimeSpan_CalForStr(lpszStartTime, lpszEndTime, &st_LibTimer, FALSE);
    printf(_T("%d/%d/%d-%d:%d:%d\n"), st_LibTimer.wYear, st_LibTimer.wMonth, st_LibTimer.wDay, st_LibTimer.wHour, st_LibTimer.wMinute, st_LibTimer.wSecond);
}