杭电2013年计算机复试真题第一题

第一题
Problem Description

输入两个时间(格式HH:MM:SS),你需要用前面时间减去后面时间,输出两个时间的差值(若前面的时间比后面的时间小,则把前面的时间当做是第二天来处理)
Input

有多组测试数据,每组数据中有一个数字n表示共有多少组时间需要计算。接下来有n行,每一行包含两个时间HH:MM:SS,中间用空格隔开
Output

输出所给两时间的时间差,格式HH:MM:SS,不够两位的数字前面要补0。对于每组时间输出一行
Sample Input

3
15:08:32 16:07:32
10:32:26 8:53:26
23:05:59 20:15:00
Sample Output

23:01:00
01:39:00
02:50:59

#include "bits/stdc++.h"
using namespace std;

int main(void) {
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
		int hour[2],minute[2],second[2];
		scanf("%d:%d:%d %d:%d:%d",&hour[0],&minute[0],&second[0],&hour[1],&minute[1],&second[1]); 
		int hh=hour[0]-hour[1];
		int mm=minute[0]-minute[1];
		int ss=second[0]-second[1];
		if(ss<0){
			ss+=60;
			mm-=1;
		}
		if(mm<0){
			mm+=60;
			hh-=1;
		}
		if(hh<0){
			hh+=24;
		}
		printf("%02d:%02d:%02d\n",hh,mm,ss);
	} 
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值