计算C ++军事时间的时差

时间:2017-07-11 02:59:53

标签: c++

我必须编写一个程序,以军事时间格式给出两次之间的差异。例如,

请在第一时间输入:1730 请输入第二次:0900 输出= 15小时30分钟

这是我提出的程序(*不允许使用if语句,循环或函数)

我只需要知道这是正确还是不正确?

int main()
{

    int first;
    int second;

    cout << "Please enter the first time:";
    cin >> first;
    cout << endl;

    cout << "Please enter the second time:";
    cin >> second;
    cout << endl;

    int am = first - 1200;
    second = second + 1200;

    int amhour = am/100;
    int ammins = am%100;

    int hours = second - amhour*100;

    int real_hr = hours - 40;
    int final_time = real_hr - ammins;
    int final_hours = final_time/100;
    int final_mins = final_time%100;

    cout << final_hours << " hours and " << final_mins << " minutes." << endl;

    return 0;
}

1 个答案:

答案 0 :(得分:0)

我首先将每次转换为“自午夜以来的分钟数”,然后从第二个中减去第一个,然后使用它来形成输出。

但是,例如,如果第一次是2330,而第二次是{{1},那么您可能需要考虑减法会给您一个号。 }(越过日期边界)。

您可以通过简单地将1440分钟(一天)添加到差异中,然后使用取模运算符来减少超过一天的时间来解决该问题。

所以我将从以下内容开始:

0030