要求:
用户第一行会输入一个时间(包含时分)xx:xx
第二行表示具体操作次数
后面行数为操作次数,可以 为+2,-3等,代表操作了x分钟
写一个算法,计算当前时间,进行操作后时间(包含时分)
用hour接受当前小时,min接受当前分钟
- Scanner in = new Scanner(System.in);
- String[] time = in.nextLine().split(":");
- int hour = Integer.valueOf(time[0]);
- int min = Integer.valueOf(time[1]);
int n = in.nextInt();
首先接收具体操作,接收完后需要判断当前行数是否大于1
若不是代表此次输入有误,不进行任何操作
若是进行下一步操作
将符号和数字进行拆分,先判断符号是+还是-
若是-需要考虑到分钟减到0后需要进行的操作
减操作需要考虑分钟减到0之后要从59开始减,小时也要相应-1,小时减到0之后要从23开始减
先判断需要操作的分钟是否比当前时间的分钟小,若是直接相减即可
若不是就需要先处理需要操作小时
由于对小时操作时,哪怕是59-60也需要多操作一次小时
所以使用ceil向上整形,而取余24表示需要考虑加的时间超过了一天的情况,但只有时分,所以直接取余操作,保证就算要减一天半(24*60*1.5分钟),实际只用操作半天即可
判断当前小时是否大于对小时操作的次数
是直接减去即可