时间计算器

import java.util.Scanner;

public class Calculation {

    final static Integer TIME_DAY = 24 * 60;
    final static Integer HOUR = 24;
    final static Integer MINUTE = 60;

    /**
     * 时间计算器需要在原有基础上对数字进行加减运算
     * 思路一:直接对原有的时间进行一系列判断计算小时和分钟变化并进行相应处理(较难)
     * 思路二:直接将时间直接变成分钟,在对分钟进行计算
     * 加分钟直接加,若超过24*60则代表当前时间超过了一天,进行取余操作强制变为一天
     * 减分钟直接减,若少于0则代表操作时间超过一天,取余强制变为一天,再加24*60
     */
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String[] time = in.next().split(":");
        int hour = Integer.valueOf(time[0]);
        int minute = Integer.valueOf(time[1]);
//        System.out.println();
        int opNum = in.nextInt();
        while (opNum-- > 0) {
            int sumTime = MINUTE * hour + minute;
            String op = in.next();
            String symbal = op.substring(0, 1);
            int opMinute = Integer.valueOf(op.substring(1));

            if (symbal.equals("+")) {
                int finalTime = (sumTime + opMinute) % TIME_DAY;
                minute = finalTime % MINUTE;
                hour = finalTime / MINUTE;
//                System.out.println();
            } else if (symbal.equals("-")) {
                int finalTime = (sumTime - opMinute) % TIME_DAY;
                if (finalTime >= 0) {
                    minute = finalTime % MINUTE;
                    hour = finalTime / MINUTE;
                } else {
                    finalTime += TIME_DAY;
                    minute = finalTime % MINUTE;
                    hour = finalTime / MINUTE;
                }
//                System.out.println();
            }
        }
        printTime(hour, minute);
        Integer[][][] i = {};
    }

    public static void printTime(int hour, int min) {
        if (hour < 10 && min < 10) {
            System.out.println("0" + hour + ":0" + min);
            return;
        } else if (hour >= 10 && min < 10) {
            System.out.println(hour + ":0" + min);
            return;
        } else if (min >= 10 && hour < 10) {
            System.out.println("0" + hour + ":" + min);
            return;
        }

        System.out.println(hour + ":" + min);

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值