【发布时间】:2016-08-16 20:27:51
【问题描述】:
我需要能够填充两个变量(一种时间变量),然后能够计算它们的差异。
经过我所有的搜索后,我找到了difftime,但我的问题是,它使用time_t 变量,我不知道如何用我想要的时间填充“time_t”。
例如,我想用户输入 time_1 和 time_2 作为 (10:04, 11:05),它能够以秒或分钟或小时或任何时间显示差异。(例如 61 分钟)
我试过了,但没有成功:
#include <iostream>
#include <ctime>
using namespace std;
void main()
{
tm time_1 = {0, 0, 0, 1, 0, 0, 0, 0, 0};
tm time_2 = {0, 0, 0, 1, 0, 0, 0, 0, 0};
time_1.tm_hour = 10;
time_1.tm_min = 4;
time_2.tm_hour = 11;
time_2.tm_min = 5;
double diff = difftime (mktime(&time_2),mktime(&time_1));
cout << diff << endl;
system("pause");
}
【问题讨论】:
-
但它不起作用 - 请添加到您的问题中,解释它是如何不起作用的。有错误吗?您是否收到了意外的输出?
-
我的意思是它只显示 0 输出,这不是真的,它应该是 3660(difftime 显示秒)
-
两个
mktime调用都返回-1,表示失败。difftime(-1, -1)为零也就不足为奇了。 -
@JonnyHenly 我的代码也像你的一样在 cpp.sh 中工作,但它们都不能在 VB 中工作
标签: c++ time ctime time-t difftime