- 实现方法:将时间点转换成基于当前系统的日期时间节点,分别得到一个较大的整数,然后做差值计算得到时间差,之后将这个以秒为单位的时间差转换成日期时间差。以下是实现代码。
- 主函数
#include <iostream>
#include <ctime>
using namespace std;
int main( )
{
struct tm t1,t2;
//时间节点1--2019年2月25日6时10分10秒
t1.tm_sec = 10;
t1.tm_min = 10;
t1.tm_hour = 6;
t1.tm_mday = 25;
t1.tm_mon = 2;
t1.tm_year = 2019-1900;
//时间节点2--2019年2月26日16时30分30秒
t2.tm_sec = 30;
t2.tm_min = 30;
t2.tm_hour = 16;
t2.tm_mday = 26;
t2.tm_mon = 2;
t2.tm_year = 2019-1900;
// 基于当前系统的当前日期/时间
time_t now1 = mktime(&t1);
time_t now2 = mktime(&t2);
time_t now3 ;
now3=difftime(now2,now1);
cout<<"基于当前系统时间差值:"<< now3<<"秒" << endl;
tm *ltm = gmtime(&now3);
// 输出 tm 结构的各个组成部分
cout<<"时间差值为";
cout << ltm->tm_year-70<< "年";
cout << ltm->tm_mon<< "月";
cout << ltm->tm_mday-1<< "日";
cout << ltm->tm_hour<< "时";
cout << ltm->tm_min << "分";
cout << ltm->tm_sec <<"秒"<<endl;
}