在教科书中使用C++解决问题有一个问题,即您有一个可以在时间上前进24小时的时间机器,它希望您输入开始时间结束时间使用小时值,分钟值和表示时间是AM还是PM的布尔值,并计算出已经过了多少分钟。我想用军事时间来做这件事,而我能够计算出开始时间是否少于结束时间(即0000和2359返回1439的时间)多少分钟,但我无法弄清楚该怎么做相反。C++时间机器不计算正确通过的时间量
这是我到目前为止有:
#include <iostream>
#include <cmath>
using namespace std;
int timeDifference(int t1, int t2)
{
int t1_mins = (t1/100) * 60 + (t1 % 100);
int t2_mins = (t2/100) * 60 + (t2 % 100);
return(t2_mins - t1_mins);
}
int main()
{
cout << "The time difference between 0000 and 2359 is " <<
timeDifference(0,2359) << " minutes." << endl;
cout << "The time difference between 2359 and 0001 is " <<
timeDifference(2359,1) << " minutes." << endl;
cout << "The time difference between 2010 and 1000 is " <<
timeDifference(2010,1000) << " minutes." << endl;
cout << "The time difference between 0300 and 1500 is " <<
timeDifference(300,1500) << " minutes." << endl;
}
任何帮助表示赞赏和感谢提前!
那么你有什么希望它输出为'timeDifference(2359,1)'? 2? –
@JosephMansfield是的,对于timeDifference(2010,1000)应该是830. – dsdouglous
'std :: chrono :: duration'和'time_point'可能会使这个更清洁。 – David