在Linux下编程实现计算两个时间字符串的时间差,效果图如下:
实现的过程分为两步:
1.将时间字符串转为time_t的格式
2.再计算两个time_t格式的时间间隔
使用时间格式转换和计算时间差值时,需要用到头文件time.h。拷贝字符串,需要用到头文件string.h。
下面是完整的源代码,供学习使用:
#include <stdio.h>
#include <time.h>
#include <string.h>
time_t get_time(const char* time_str)
{
tm tm_;
time_t t_;
char buf[128]= {0};
strcpy(buf,time_str);
strptime(buf, "%Y-%m-%d %H:%M:%S", &tm_); //将字符串转换为tm时间
tm_.tm_isdst = -1;
t_ = mktime(&tm_); //将tm时间转换为秒时间
t_ += 3600; //秒数加3600
return t_;
}
int main()
{
const char* t_start = "2017-6-7 17:52:12";
const char* t_end = "2017-6-7 18:15:45";
time_t start_time_t,end_time_t;
start_time_t = get_time(t_start);
end_time_t = get_time(t_end);
printf("%s -> %s\n",t_start,t_end);
double span = difftime (end_time_t,start_time_t);
printf("时间差:%.2f S\n",span);
return 0;
}