北邮OJ 89. 统计时间间隔 java版

89. 统计时间间隔

时间限制 1000 ms 内存限制 65536 KB

题目描述

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

输入格式

第一行为数据组数T(1≤T≤50000)。
每组数据包括两行,分别代表两个时间

 

输出格式

每组数据输出一行,表示最少经过的分钟数。

输入样例

2
7:00
7:00
7:00
8:00

输出样例

0
60

乍一想有点复杂,情况比较多。但是把两个时间都化为以0:00为开始的分钟表示时就简单多了,无非就两种情况,一个是第一个分钟数大于第二个还有第二个大于第一个。

那么这就相当于一个环, 不是求优弧长度,就是求劣弧长度,劣弧长度很好求,大的减去小的即可,优弧长度要用总长度24*60减去劣弧长度。

 

package test;

import java.io.BufferedInputStream;
import java.util.Scanner;

public class TimejiangeMain {

	public static void main(String[] args) {
		Scanner scan = new Scanner(new BufferedInputStream(System.in));
		int T = scan.nextInt();
		int h1,m1,h2,m2,time11,time22;
		String time1,time2;
		scan.nextLine();
		int time;
		for(int i = 0;i<T ;i++){
			time1 = scan.nextLine();
			h1 = Integer.parseInt(time1.split(":")[0]);
			m1 = Integer.parseInt(time1.split(":")[1]);
			time11 = h1*60 + m1;
			time2 = scan.nextLine();
			h2 = Integer.parseInt(time2.split(":")[0]);
			m2 = Integer.parseInt(time2.split(":")[1]);
			time22 = h2*60 + m2;
			if(time11<=time22){
				time = time22-time11;
				System.out.println(time);
			}else{
				 time = 24*60-(time11-time22);
				 System.out.println(time);
			}
			
		}
	}

}

 

posted @ 2019-03-04 10:01  凌乱533  阅读(116)  评论(0编辑  收藏  举报