思路:
- 先通过除法和取余获得开始时间的小时和分钟,再获取流逝时间对应的小时和分钟
- 小时可以直接相加减,分钟需要根据情况决定是否进位:
- 当给定的流逝时间小于0时,若流逝对应的分钟的绝对值大于开始时间的分钟值,需要向开始时间的小时值借1当60之后再进行减法运算;若流逝对应的分钟的绝对值小于开始时间的分钟值,直接进行减法;
- 当给定的流逝时间大于0时,若流逝时间对应的分钟值与开始时间对应的分钟值相加之和大于等于60,则需要向开始时间的小时位进1后进行相加运算(此时相加后需要减去60);反之,直接进行加法运算。
import java.util.Scanner;
import java.lang.Math;
public class Main {
public static void main (String [] args){
Scanner sc = new Scanner(System.in);
int start = sc.nextInt();
int min = sc.nextInt();
int start_h = start / 100;
int start_m = start % 100;
int add_h = min / 60;
int add_m = min % 60;
start_h += add_h;
if (min < 0) {
if (start_m < Math.abs(add_m)) {
start_h -= 1;
start_m = 60 - Math.abs(add_m) + start_m;
} else {
start_m -= add_m;
}
} else {
if (start_m + add_m >= 60) {
start_h += 1;
start_m = start_m + add_m - 60;
} else {
start_m += add_m;
}
}
System.out.printf("%d%02d", start_h, start_m);
}
}