zoukankan      html  css  js  c++  java
  • 北邮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);
    			}
    			
    		}
    	}
    
    }
    
  • 相关阅读:
    C#中IPAddress转换成整型int
    没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
    VB.NET或C#报错:You must hava a license to use this ActiveX control.
    c#几种随机数组和数组乱序
    C#封装的websocket协议类
    VB生成条形码(EAN-13)
    VB控件间的拖放
    VB用API模拟截屏键PrintScreen
    VB读写进程的内存
    几个VB常见又内涵的错误
  • 原文地址:https://www.cnblogs.com/lingluan533/p/12537296.html
Copyright © 2011-2022 走看看