华为上机:实现两个合法时间相加

实现两个合法时间相加
描述:

给定两个合法的时间(格式固定:hh:mm:ss,时间合法,不用考虑其它情况),输入两个时间相加后的结果;注意,相加后的结果也必需是一个合法的时间;
附合法时间定义:小时在[00-23]之间,分钟和秒分别是在[00-59]之间;

运行时间限制: 无限制
内存限制: 无限制
输入:

时分秒格式的时间字符串,如00:00:00

输出:

时分秒格式的时间字符串,如00:00:00

 

样例输入:
00:00:00 00:00:01
样例输出:
00:00:01
答案提示:

建议将时间转换为秒数计算

直接计算

进位要注意

import java.util.*;

public class Main7{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        while(in.hasNext()){
            String[] strArr = in.nextLine().split(" ");
            int[] a = strToArr(strArr[0]);
            int[] b = strToArr(strArr[1]);
            String add = addTime(a,b);
            System.out.println(add);
        }
        
        in.close();
    }
    public static int[] strToArr(String str){
        String[] strA = str.split(":");
        int[] a = new int[strA.length];
        for(int i=0;i<strA.length;i++){
            a[i] = Integer.parseInt(strA[i]);
        }
        return a;
    }
    public static String addTime(int[] a,int[] b ){
        int sum = 0;
        String str="";
        sum += a[2] + b[2]; //
        
        str = (sum%60<=9?("0"+sum%60): (sum%60) )+"";
        sum=sum/60;
        sum += a[1] + b[1]; //
        str = (sum%60<=9?("0"+sum%60): (sum%60) )+":"+str;
        sum=sum/60;
        sum += a[0] + b[0]; //
        
        str = (sum%24<=9?("0"+sum%24): (sum%24) )+":"+str;
        sum =sum/24;
        return str;
    }
}
原文地址:https://www.cnblogs.com/theskulls/p/5707977.html