急 在线 等 ,string 类型的日期时间如何相减?
就是两个string 类型的 日期时间 相减 得到 long 类型的 秒数
如下:
string strStart="2008-11-19 09:42:00";
string strEnd="2007-01-29 15:42:00";
long tempSecond=strStart-strEnd; // 这样的功能如何实现?
[解决办法]
#include <time.h>
#include <string>
using namespace std;
time_t StringToDatetime(const char *str)
{
tm tm_;
int year, month, day, hour, minute,second;
sscanf(str,"%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);
tm_.tm_year = year-1900;
tm_.tm_mon = month-1;
tm_.tm_mday = day;
tm_.tm_hour = hour;
tm_.tm_min = minute;
tm_.tm_sec = second;
tm_.tm_isdst = 0;
time_t t_ = mktime(&tm_);
return t_;
}
int _tmain(int argc, _TCHAR* argv[])
{
string strStart="2008-11-19 09:42:00";
string strEnd="2007-01-29 15:42:00";
time_t timeStart = StringToDatetime(strStart.c_str());
time_t timeEnd = StringToDatetime(strEnd.c_str());
double dtimesec = difftime(timeStart, timeEnd);
printf("two time diffsecond:[%f]\n", dtimesec);
return 0;
}