C++ 有什么时间函数,能做加减运算?
比如现在 是 17:48:56.232 ,比如能否运算 加上78秒 956 毫秒后的时间是多少?
[解决办法]
看什么系统吧。
windows的话,可以先把时间转成64位步进时间,加上你的时间偏移量后再转回来。
GetLocalTime
SystemTimeToFileTime
FileTimeToSystemTime
这3个API,自己查查
[解决办法]
//比如现在是17:48:56.232,加上78秒956毫秒后的时间是多少?
#include <stdio.h>
#include <windows.h>
char s[]="17:48:56.232";
char *HHMMSSmss_add_SecondsMilliseconds(char *HHMMSSmss,int Seconds,int Milliseconds) {
SYSTEMTIME st;
FILETIME ft;
static char t[13];
GetLocalTime(&st);
sscanf(HHMMSSmss,"%2d:%2d:%2d.%3d",&st.wHour,&st.wMinute,&st.wSecond,&st.wMilliseconds);
SystemTimeToFileTime(&st,&ft);
*(__int64 *)(&ft)=*(__int64 *)(&ft)+((__int64)Seconds*1000i64+(__int64)Milliseconds)*10000i64;
FileTimeToSystemTime(&ft,&st);
sprintf(t,"%02d:%02d:%02d.%03d",st.wHour,st.wMinute,st.wSecond,st.wMilliseconds);
return t;
}
int main() {
printf("%s+%d.%03d==%s\n",s,78,956,HHMMSSmss_add_SecondsMilliseconds(s,78,956));
return 0;
}
//17:48:56.232+78.956==17:50:15.188
//