当前位置:C++技术网 > 资讯 > Linux编程:13 计算两个时间字符串的时间差

Linux编程:13 计算两个时间字符串的时间差

更新时间:2017-06-08 00:04:15浏览次数:1+次

        在Linux下编程实现计算两个时间字符串的时间差,效果图如下:

    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;
}