PTA C/C++ 哦,该死的deadline!

哦,该死的deadline! (10 分)

此刻,在游戏中叱咤风云的你完全没有意识到舍友们已经开始紧张的奋笔疾书了——哦,你居然忘了这周大作业的deadline就到了!快算一下你还剩多少时间!

输入格式:

输入共两行,均以day hh:mm:ss形式给出一个时间。第一行是deadline时间,第二行是当前时间。

输出格式:

一行,以hhh:mm:ss形式输出现在距离deadline剩余的时间。小时、分钟、秒数均至少为2位,不足2位以0补齐,小时数有可能达到3位。若deadline已经到了(恰好重合也算),不再输出剩余时间,改为输出一行"Too late!"(不含引号)。

输入样例1:

2 15:30:31
1 20:15:17

输出样例1:

19:15:14

输入样例2:

3 12:00:00
3 20:00:00

输出样例2:

Too late!

答案

原创~
格式输入推荐还是用 C 的那套

#include <stdio.h>
using namespace std;
int main() {
    int d_d, d_h, d_m, d_s;
    int d, h, m, s;
    scanf("%d %d:%2d:%2d", &d_d, &d_h, &d_m, &d_s);
    scanf("%d %d:%2d:%2d", &d, &h, &m, &s);
    int to_d_s = d_d * 24 * 60 * 60 + d_h * 60 * 60 + d_m * 60 + d_s;
    int to_s = d * 24 * 60 * 60 + h * 60 * 60 + m * 60 + s;
    if (to_s >= to_d_s) {
        printf("Too late!");
    } else {
        int diff = to_d_s - to_s;
        int diff_h = diff / (60 * 60);
        diff -= diff_h * 60 * 60;
        int diff_m = diff / 60;
        diff -= diff_m * 60;
        printf("%02d:%02d:%02d", diff_h, diff_m, diff);
    }
    return 0;
}

版权声明:本文为Moriafly原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。