北邮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);
			}
			
		}
	}

}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值