转换思路利用time_t类型来进行时间的换算。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <string>
#include <time.h>
using std::string;
#pragma warning(disable:4996)
int main()
{
string _strDealDate("20120124");
charszDate[20]= { 0 };
intYear= 0, Month = 0, Day= 0, Hour = 0, Min= 0, Second = 0;
strcpy(szDate, (char*)_strDealDate.substr(0, 4).c_str());
printf("%s\n",szDate);
//获取当前时间
time_t curTime = time(NULL);
structtm* t= localtime(&curTime);
printf("%4d %02d %02d\n",
t->tm_year+ 1900, t->tm_mon+ 1, t->tm_mday);//获取当前的日期
printf( "%02d %02d %02d\n",t->tm_hour,t->tm_min,t->tm_sec); // 获取当前的时间
//获取减一天后的时间
time_t preDay = curTime- 3600 * 24;
t= localtime(&preDay);
printf("%4d %02d %02d\n",
t->tm_year+ 1900, t->tm_mon+ 1, t->tm_mday);//获取前一天的日期
printf("%02d %02d %02d\n",t->tm_hour,t->tm_min,t->tm_sec); // 获取前一天的时间
//获取加一天后的时间
time_t preDay = curTime+ 3600 * 24;
t= localtime(&preDay);
printf("%4d %02d %02d\n",
t->tm_year+ 1900, t->tm_mon+ 1, t->tm_mday);//获取一天后的日期
printf("%02d %02d %02d\n",t->tm_hour,t->tm_min,t->tm_sec); // 获取一天后的时间
return0;
}
运行结果