c语言 求24小时制时间间隔

#include <stdio.h>

int main()
{
    int a1, b1, c1, a2, b2, c2;
    int s1, s2, s3;
    int a3, b3, c3;

    scanf("%d:%d:%d", &a1, &b1, &c1);
    scanf("%d:%d:%d", &a2, &b2, &c2);

    s1 = a1 * 3600 + b1 * 60 + c1;
    s2 = a2 * 3600 + b2 * 60 + c2;

    if (s1 > s2)
        s3 = s1 - s2;

    else
        s3 = s2 - s1;

    a3 = s3 / 3600;
    b3 = (s3 - a3 * 3600) / 60;
    c3 = s3 - a3 * 3600 - b3 * 60;

    printf("%02d:%02d:%02d", a3, b3, c3);

    return 0;
}

 代码没写注释,个人认为还是比较容易理解的。我的思路是将时间换算成秒再进行计算,这样可以省去各种繁杂的条件判断。

这里贴出另一个同学的思考方向,,,,也挺好的,对我来说要琢磨很久(笑), 所以我就去找另一个方法去了。链接如下。

时间差值 c语言_孤灯燃梦的博客-CSDN博客