首页 > 解决方案 > 使用模数找出2次之间的差异?

问题描述

我需要编写一个程序,以 24 小时格式告诉我 2 次之间的差异。

所以如果我输入 22:30,它必须知道 22 = 小时和 30 = 分钟。

此外,如果我输入另一个时间(例如 23:50),它需要告诉我时差是 1 小时 20 分钟。

我一直在玩它,但我真的不明白模数是如何工作的。

我试着写:

到达时间 = 小时/100

hours % 100 但我知道这没有任何意义。

标签: c++time

解决方案


不使用模数,但您也可以使用<chrono>库找到 2 次之间的差异

#include <chrono>
#include <iostream>

int main(){
    //using namespace std::literals::chrono_literals;
    using namespace std::chrono;
    
    //auto d = hh_mm_ss{(23h+50min)-(22h+30min)};
    auto d = hh_mm_ss{ (hours{23}+minutes{50}) - (hours{22}+minutes{30}) };

    std::cout << (d.is_negative() ? "negative " : "")
        << d.hours().count() << " hours "
        << d.minutes().count() << " minutes";
}

注意:std::chrono::hh_mm_ss要求(此处c++20可能实现)


推荐阅读