时间计算器

写一个算法:

要求:

        用户第一行会输入一个时间(包含时分)xx:xx

        第二行表示具体操作次数

        后面行数为操作次数,可以 为+2,-3等,代表操作了x分钟

写一个算法,计算当前时间,进行操作后时间(包含时分)

1.首先这四行用于处理接受的时间,以:进行拆分

用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]);

2.用这一行接受操作次数

int n = in.nextInt();

3.接下来就开始核心代码

首先接收具体操作,接收完后需要判断当前行数是否大于1

若不是代表此次输入有误,不进行任何操作

若是进行下一步操作

        将符号和数字进行拆分,先判断符号是+还是-

        若是-需要考虑到分钟减到0后需要进行的操作

                减操作需要考虑分钟减到0之后要从59开始减,小时也要相应-1,小时减到0之后要从23开始减

                先判断需要操作的分钟是否比当前时间的分钟小,若是直接相减即可

                若不是就需要先处理需要操作小时

                        由于对小时操作时,哪怕是59-60也需要多操作一次小时

                        所以使用ceil向上整形,而取余24表示需要考虑加的时间超过了一天的情况,但只有时分,所以直接取余操作,保证就算要减一天半(24*60*1.5分钟),实际只用操作半天即可

                        判断当前小时是否大于对小时操作的次数

                                是直接减去即可

         

你可能感兴趣的:(java,算法)