您的位置:首页 > 编程语言 > C语言/C++

C++ 对日期进行加减运算

2017-04-11 00:00 204 查看
#include <iostream>
#include <ctime>
#include <cstring>
using namespace std;

time_t strTime2unix(char timeStamp[])
{
struct tm tm;
memset(&tm, 0, sizeof(tm));

sscanf(timeStamp, "%d-%d-%d %d:%d:%d",
&tm.tm_year, &tm.tm_mon, &tm.tm_mday,
&tm.tm_hour, &tm.tm_min, &tm.tm_sec);

tm.tm_year -= 1900;
tm.tm_mon--;

return mktime(&tm);
}
time_t addDay(time_t time1,int days)
{
return (time1+days*60*60*24 + 28800);

}
time_t minusDay(time_t time1,int days)
{
return (time1-(days*60*60*24-28800));

}
int main(int argc,char** argv)
{

// char timeStamp[100] = "2014-02-28 23:59:59";
if (argc<=0)
{
return -1;
}
char arr[50];

strcpy(arr,argv[1]);
strcat(arr," ");
strcat(arr,argv[2]);
//cout << "arr " << arr << endl;
time_t t = strTime2unix(arr);

/*cout << "t " <<t << endl;
cout << "---------------" << endl;*/
time_t t_2 = addDay(t,1);//时间时间戳相加
// cout << "t2 " <<t << endl;
//cout << t_2 << endl;
// additional
//cout << ctime(&t_2) << endl;

struct tm *p1=gmtime(&t_2);
char s1[100];
strftime(s1, sizeof(s1), "%Y-%m-%d %H:%M:%S", p1);
printf("时间相加:%s\n",s1);

time_t t_3 = minusDay(t,1);//时间时间戳相减
struct tm *p2=gmtime(&t_3);
char s2[100];
strftime(s2, sizeof(s2), "%Y-%m-%d %H:%M:%S", p2);
printf("时间相减:%s\n",s2);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++;时间戳