AcWing 1231. 航班时间
原题链接
简单
作者:
Augus002
,
2024-04-04 11:02:28
,
所有人可见
,
阅读 5
Java代码
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
scanner.nextLine(); // 读取换行符
while(n-- > 0){
String s1 = scanner.nextLine();
String s2 = scanner.nextLine();
String[] s3 = s1.split(" ");
String[] s4 = s2.split(" ");
int add1 = 0, add2 = 0;
if(s3.length == 3) add1 = Integer.valueOf(s3[2].charAt(2)-'0');
if(s4.length == 3) add2 = Integer.valueOf(s4[2].charAt(2) - '0');
// 第一行解析
String[] split1 = s3[0].split(":");
int h1 = Integer.valueOf(split1[0]);
int m1 = Integer.valueOf(split1[1]);
int ss1 = Integer.valueOf(split1[2]);
String[] split2 = s3[1].split(":");
int h2 = Integer.valueOf(split2[0]);
int m2 = Integer.valueOf(split2[1]);
int ss2 = Integer.valueOf(split2[2]);
h2 += add1 * 24;
int dh1 = h2 - h1;
int dm1 = m2 - m1;
int dss1 = ss2 - ss1;
// 第二行解析
String[] split3 = s4[0].split(":");
int h3 = Integer.valueOf(split3[0]);
int m3 = Integer.valueOf(split3[1]);
int ss3 = Integer.valueOf(split3[2]);
String[] split4 = s4[1].split(":");
int h4 = Integer.valueOf(split4[0]);
int m4 = Integer.valueOf(split4[1]);
int ss4 = Integer.valueOf(split4[2]);
h4 += add2 * 24;
int dh2 = h4 - h3;
int dm2 = m4 - m3;
int dss2 = ss4 - ss3;
int dh = (dh1 + dh2);
int dm = (dm1 + dm2);
int dss = (dss1 + dss2);
if(dss >= 60){
dss -= 60;
dm++;
}
if(dm >= 60){
dm -= 60;
dh++;
}
while(dss < 0){
dss += 60;
dm--;
}
while(dm < 0){
dm += 60;
dh--;
}
while(dm % 2 != 0){
dss += 60;
dm--;
}
while(dh % 2 != 0){
dm += 60;
dh--;
}
dh /= 2;
dm /= 2;
dss /= 2;
MyTime myTime = new MyTime(dh, dm, dss);
System.out.println(myTime);
}
scanner.close();
}
}
class MyTime{
int h;
int m;
int s;
public MyTime(int h, int m, int s) {
this.h = h;
this.m = m;
this.s = s;
}
@Override
public String toString() {
StringBuffer stringBuffer = new StringBuffer();
if(h < 10) stringBuffer.append('0');
stringBuffer.append(h);
stringBuffer.append(':');
if(m < 10) stringBuffer.append('0');
stringBuffer.append(m);
stringBuffer.append(':');
if(s < 10) stringBuffer.append('0');
stringBuffer.append(s);
return stringBuffer.toString();
}
}