题目描述

给出两个时间(24小时制),求第一个时间至少要经过多久才能到达第二个时间。给出的时间一定满足的形式,其中x和y分别代表小时和分钟。0≤x<24,0≤y<60。

输入输出处理

输入格式hh:mm,也就是在数字时钟中最常见的24小时表示法, 对于这种输入形式, 可以仿照87题中的技巧通过 scanf("%d:%d",&hh,&mm)的形式将时间和分钟分别复制到两个整形变量当中.

输出是最少经过的分钟数, 是一个整形变量,没有太多的技巧.

思路

因为题目中要求输出的是分钟数,所以可以先将输入的两个时间换算成当天的分钟数,然后计算时间差就是所求.

要注意的是起始时间大于结束时间的时候, 求出t1-t2要加上24*60(一天的分钟数).

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
#include<cstdio>
int main(){
int T,x1,y1,x2,y2;
scanf("%d",&T);
while(T--){
scanf("%d:%d",&x1,&y1);
scanf("%d:%d",&x2,&y2);
int t1 = x1*60+y1;
int t2 = x2*60+y2;
int res = ((t2>=t1)?(t2-t1):(t2-t1+24*60));
printf("%d\n",res);
}
}