C++ 时间机器无法正确计算经过的时间量
C++ Time machine doesn't calculate amount of time passed correctly
在教材《用C++解决问题》中,有一个问题说你有一台时间机器可以向前移动24小时,它希望你使用小时值、分钟值和布尔值输入开始时间和结束时间,布尔值表示时间是上午还是下午,并计算出已经过去了多少分钟。我想用军事时间来做这件事,如果开始时间小于结束时间(即0000和2359的时间返回1439),我可以计算出多少分钟,但我不知道如何做相反的事情。
以下是我目前所拥有的:
#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;
}
如有任何帮助,我们将不胜感激!
如果t2小于t1,只需将一整天的分钟数添加到t2即可。
这将导致以下代码:
#include <iostream>
int timeDifference(int t1, int t2)
{
int t1_mins = (t1 / 100) * 60 + (t1 % 100);
int t2_mins = (t2 / 100) * 60 + (t2 % 100);
if ( t2 < t1 )
t2_mins += 24 * 60;
return(t2_mins - t1_mins);
}
std::chrono
让事情变得更好。。。
给定24小时时间输入持续时间:
using namespace std::chrono;
minutes timeDifference(minutes t1, minutes t2)
{
if(t2 < t1)
t2 += 24h;
return t2 - t1;
}
相关文章:
- 为什么根据测量位置测量经过的时间时会有很大的不同?
- 如何比较两个经过的时间?
- 为什么这个经过的时间(帧时间)计算会锁定我的游戏
- 获取标准::未来<T>::wait_for的经过时间
- C++ 时间机器无法正确计算经过的时间量
- 填充 unordered_map (c++) 后 malloc 的经过时间
- 自当地时间上午8点以来,将时间经过的时间与Boost
- 如何获得Microsoft TTS演讲的经过的时间
- 获取自C++执行以来经过时间的最干净,最简单的方法
- 在 Linux 中,非常高的经过(挂钟)时间和低系统时间的含义
- 16.66ms 帧时间.当 sleep() 只经过整毫秒时,你如何获得完美的 60 fps
- 以格式化字符串的形式获取经过的时间
- 如何在C++中检查经过的时间和分配的内存
- 在visualc++2010中经过的时间
- 如何在没有计时器的情况下确定经过了多少时间
- 如何获得自SFML中按下键以来经过的时间
- 在经过时间后做某事C++SFML 2
- 试图使用gettimeofday来查找以毫秒为单位的经过时间
- 以C++记录经过时间的正确方法
- 以复数表示的实际经过时间