首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

急 在线 等 ,string 类型的日期时间怎么相减

2014-01-03 
急 在线 等,string 类型的日期时间如何相减?就是两个string 类型的 日期时间 相减 得到 long 类型的 秒数

急 在线 等 ,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;
}

热点排行