C++求两个日期之间的相差天数
2015-09-28 16:15
543 查看
参考http://blog.csdn.net/nanhaizhixin/article/details/8349668
#include <stdio.h>
#include <string>
#include <time.h>
using namespace std;
string GetLastNthDate(int n);
time_t FormatTime2(char * szTime) ;
void main()
{
printf("start!\n");
string timeStr = GetLastNthDate(2);
printf("time:%s", timeStr.c_str());
char time_prev[512] = {0};
sprintf(time_prev,"%s000000","20150905");
char time_curr[512] = {0};
sprintf(time_curr,"%s000000","20150831");
time_t time_t_prev = FormatTime2(time_prev);
time_t time_t_curr = FormatTime2(time_curr);
long long days = (time_t_prev-time_t_curr)/86400; //1天=24*60*60秒
printf("days %lld", days);
}
string GetLastNthDate(int n)
{
time_t current_t = time(0);
time_t lastDay_t = time(0);
char lastDay_time[128];
lastDay_t = current_t - 86400*n; //每天差86400秒
strftime( lastDay_time, sizeof(lastDay_time), "%Y%m%d", gmtime(&lastDay_t));
return string(lastDay_time);
}
time_t FormatTime2(char * szTime)
{
struct tm tm1;
time_t time1;
sscanf(szTime, "%4d%2d%2d%2d%2d%2d",
&tm1.tm_year,
&tm1.tm_mon,
&tm1.tm_mday,
&tm1.tm_hour,
&tm1.tm_min,
&tm1.tm_sec);
tm1.tm_year -= 1900;
tm1.tm_mon --;
tm1.tm_isdst=-1;
time1 = mktime(&tm1);
return time1;
}
#include <stdio.h>
#include <string>
#include <time.h>
using namespace std;
string GetLastNthDate(int n);
time_t FormatTime2(char * szTime) ;
void main()
{
printf("start!\n");
string timeStr = GetLastNthDate(2);
printf("time:%s", timeStr.c_str());
char time_prev[512] = {0};
sprintf(time_prev,"%s000000","20150905");
char time_curr[512] = {0};
sprintf(time_curr,"%s000000","20150831");
time_t time_t_prev = FormatTime2(time_prev);
time_t time_t_curr = FormatTime2(time_curr);
long long days = (time_t_prev-time_t_curr)/86400; //1天=24*60*60秒
printf("days %lld", days);
}
string GetLastNthDate(int n)
{
time_t current_t = time(0);
time_t lastDay_t = time(0);
char lastDay_time[128];
lastDay_t = current_t - 86400*n; //每天差86400秒
strftime( lastDay_time, sizeof(lastDay_time), "%Y%m%d", gmtime(&lastDay_t));
return string(lastDay_time);
}
time_t FormatTime2(char * szTime)
{
struct tm tm1;
time_t time1;
sscanf(szTime, "%4d%2d%2d%2d%2d%2d",
&tm1.tm_year,
&tm1.tm_mon,
&tm1.tm_mday,
&tm1.tm_hour,
&tm1.tm_min,
&tm1.tm_sec);
tm1.tm_year -= 1900;
tm1.tm_mon --;
tm1.tm_isdst=-1;
time1 = mktime(&tm1);
return time1;
}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- oracle sql日期比较
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- DB2 日期和时间的函数应用说明
- Delphi实现读取系统时间与日期完整实例
- Country使 MS-DOS 子系统能使用国际时间、日期、货币、大小写转换和小数分隔符
- vbs下通过日期查找文件夹的代码
- 用批处理实现的创建带日期的文件夹的代码
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- asp格式化日期时间格式的代码
- sql server动态存储过程按日期保存数据示例
- SqlServer中的日期与时间函数
- Oracle 日期的一些简单使用
- C++联合体转换成C#结构的实现方法
- C#验证给定字符串形式日期是否合法的方法
- C++编写简单的打靶游戏